簡體   English   中英

如何在Laravel中限制與管理員相關的AngularJs控制器?

[英]How to restrict admin related AngularJs Controllers in Laravel?

Laravel中 ,您可以將對某些控制器(例如,與Admin相關的控制器,例如Admin / UsersController,Admin / SettingsController等)的訪問限制為特定的用戶會話。 由於它是服務器端的,除非經過身份驗證,否則用戶無法窺探此類控制器。

AngularJs的情況下,代碼駐留在瀏覽器中。 因此,任何人都可以看一下javascript源代碼,並且可以弄清楚應用程序的行為。 假設他可能發現有些控制器可以管理與管理員相關的數據。 否則,任何人都可能嘗試強行搜索應用程序的URL,以查看要觀察的javascript文件。 假設他查看了http://myapp.com/AdminSettingsController.js ,其中經過身份驗證的用戶應該只能看到或根本不應該看到。

回到主要問題,您如何解決此類問題?

這個問題只有一個解決方案。 僅將JavaScript視為用戶界面的語言。 僅此而已。 不要在瀏覽器中存儲任何敏感數據,也不要存儲任何敏感邏輯(例如數據庫查詢)。 無法從客戶端隱藏網絡流量或源代碼

我通常在客戶端創建某種用戶對象,其中包含用於解決權限的用戶角色,並且我將權限用於顯示控件,例如僅向admin等顯示一些按鈕。但是,這只會影響頁面的顯示 ,如果用戶與該控件進行交互,控件依賴於服務器,並且如果用戶對服務器也沒有適當的權限,則與控件的交互將失敗,因此,如果任何有知識的人更改了客戶端上的用戶對象並授予了他權限管理員角色,他只能看到管理員看到的控件,但是他無法執行管理員操作,也看不到任何敏感數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM