我有一個多租戶應用程序,公司有許多用戶和許多客戶。 我使用before_filters保護了視圖和控制器,以便current_user只能查看屬於用戶公司的客戶端。這工作正常,未經授權的用戶收到「您沒有足夠的權利執行此操作」消息。但是,當用戶從例如「/ clients/1/edit」到「clients/2/edit」,然後他可以從另一家公司編輯客戶端。保護這個最好的方法是什麼?保護深層鏈接到未經授權的公司
0
A
回答
0
擴大您的策略以保護clients
控制器 - 您需要檢查每個操作的客戶記錄的所有權,因爲只有一些人應該能夠訪問某些客戶端。
您應該可以繼續使用任何解決方案。另一種方式是使用類似CanCan這樣的集中訪問的方法,並且可以使調試變得更容易和更直接(更重要的是,通過測試套件確認)用戶只能訪問他們應該擁有的東西進入。
Here is a list常見/流行授權gems for Rails解決用戶訪問資源的問題。無論你最終選擇什麼方法,我都不能強調足夠重要的是用測試覆蓋率來覆蓋諸如安全訪問之類的東西。它從來都不是完美的(因爲你可能會忘記測試某些東西),但它會減少你破壞已經存在的安全訪問限制的可能性,通過保持與安全相關的測試儘可能地符合人的可能性。
相關問題
- 1. 深層鏈接不會分公司
- 2. 連接到未經授權的
- 3. 保護未經授權的人的圖像內容
- 4. SoapFault未經授權 - 連接到Purolator Webservices
- 5. 保護Web API免遭未經授權的使用
- 6. 如何去保護文件免受未經授權的下載
- 7. 保護微星以防止未經授權的使用
- 8. 如何保護密鑰庫免受未經授權的訪問
- 9. 保護PHP腳本免受未經授權的訪問
- 10. Parse.com公共API錯誤未經授權
- 11. 深層鏈接到ride.lyft PWA
- 12. Maven錯誤:未經授權,ReasonPhrase:未經授權
- 13. Javascript護照 - 總是得到「未經授權」
- 14. MvvmCross +深層鏈接
- 15. 深層鏈接ERR_UNKNOWN_URL_SCHEME
- 16. Google+深層鏈接
- 17. Ajax深層鏈接?
- 18. LinqToTwitter的OAuth未經授權
- 19. 未經授權的指紋
- 20. 未經授權的藍郵
- 21. 護照Jwt未授權
- 22. 保護軟件公司知識產權的方法(代碼)
- 23. TFS自定義小部件鏈接未經授權
- 24. 快車 - 公共目錄分爲授權/未經授權的用戶
- 25. Ominauth-的Evernote,的OAuth ::使用了未經授權401未授權
- 26. 深層鏈接與UIImage的
- 27. Android的深層鏈接
- 28. Angular2中的深層鏈接
- 29. Android的深層鏈接
- 30. EWS&VB.Net:未經授權的證書 - (401)未授權