我擔心如果我使用本地存儲來存儲用戶信息,黑客可能會進入開發人員控制檯/應用程序/本地存儲以更改數據(如公司名稱)並啓動從我的數據庫從其他公司獲取數據。這裏有一些更詳細的信息安全使用本地存儲的HTML Angular 2項目
我正在開發一個商業應用程序,在註冊後,我會收到諸如公司,電子郵件,名稱等基本用戶信息。
紐約DATABSE(火力)數據結構的簡化版本,看起來像
-company1
-filed1
-data1
-filed2
-data1
-company2
-field1
data1
這是我要做的事目前沒有本地存儲(以及它被提到的問題)
- 用戶打開該網站登錄,該應用轉到firebase登錄用戶並檢索用戶詳細信息以將其存儲在變量中
- 每次用戶想要進行查詢時,我都會使用該變量並查找諸如公司名稱(在這個例子中)。 然後,我告訴firebase搜索基於該公司名稱(company1)的路徑。
這一切工作正常。然而,問題在於,啓動時沒有用戶,因此我的所有AuthGuard都會失敗,導致用戶重新返回到登錄頁面。 想象一下,如果用戶已登錄,然後按下刷新按鈕,則這將導致重定向回登錄頁面,因爲在Firebase返回一些數據之前沒有用戶。
// Auth guard
canActivate() {
if (!this.userService.getCurrentUser()) {
return false
}
return true
}
getCurrentUser(): User {
return this.currentUser
}
const APP_ROUTE: Routes = [
{ path: '', redirectTo: '/login', pathMatch: 'full' },
{ path: 'login', component: LoginComponent },
{ path: 'register', component: RegisterComponent },
{ path: 'somePath', component: SomeComponent, canActivate: [AuthGuard] },
{ path: 'somePath2', component: SomeOtherComponent, canActivate: [AuthGuard] },
{ path: '**', redirectTo: '/login' },
]
,我能想到的最簡單的解決方法是創建一個本地存儲來存儲所使用的信息,並在需要時檢查它在那裏。 不過,我擔心這種方法,用戶有可能進入本地存儲和例如,改變公司2將允許訪問其他公司的數據
有沒有一種方法來安全地存儲在本地數據存儲沒有我的關注?
在security.stackexchange.com上,這個問題可能會更好。也就是說,如果有人可以通過相對基本的URL操作查看他們不應該能夠訪問的數據(使用JSON格式),那麼您需要提高服務器端的安全性 - 這並不是真的你可以在打字稿中解決一些問題。 – Katana314