2016-12-07 92 views
0

我正在創建一個Angular 1 SPA。某些控件只對具有特定權限的用戶可見。這是基於服務器API調用設置的範圍變量。角度安全 - 更改開發人員控制檯中的值

我想到,如果我可以通過瀏覽器開發控制檯訪問這些變量,我可以更改它們的值。

我嘗試這樣做,例如:

angular.element($0).scope().$parent.myUserInfo.accessType = "admin" 
angular.element($0).scope().$apply() 

果然,在管理員的控制權,即使我沒有登錄爲管理員在頁面上彈出。有沒有最好的做法來阻止這一點,或者我是否完全錯誤?

回答

2

驗證總是必須在服務器端

我不知道你正在嘗試做的,但如果用戶有一些web服務/ REST API等交互...服務器應該禁止這樣的交互。

如果你的範圍的accessType屬性只是一個讓你知道哪些UI應該顯示給用戶,認證/會話機制是否正確由服務器處理,這不應該是一個問題的一種方法。

但是,你不能禁止用戶與開發者控制檯玩,所以你最好正確處理身份驗證。

+0

的服務器端處理認證/授權,所以你說的很對,他們不應該能夠反正對它做任何事。當我嘗試它時,我只是驚慌失措,它沒有考慮到它。 –

1

我不確定是否有保護$ scope中的值的方法。

但如JavaScript執行客戶端,因此它有可能爲用戶修改所述代碼,我總是驗證權限的服務器端。那麼用戶是否啓用管理控制客戶端並不重要,因爲他們沒有權限使用api調用。

相關問題