如何在Laravel中限制与管理相关的AngularJs控制器?

时间:2016-05-28 04:50:50

标签: javascript php angularjs laravel

Laravel 中,您可以将对某些控制器(例如,管理员相关的控制器,例如Admin / UsersController,Admin / SettingsController等)的访问权限限制为特定的用户会话。因为它是服务器端的,除非经过身份验证,否则用户无法窥探这些控制器。

对于 AngularJs ,代码驻留在浏览器中。因此,任何人都可以查看javascript源代码,并可能弄清楚应用程序的行为。假设他可能会发现有控制器可以管理与管理相关的数据。或者任何人都可能尝试暴力搜索应用程序的URL以查看javascript文件。假设他查看http://myapp.com/AdminSettingsController.js,其中经过身份验证的用户应该只能看到或不应该看到。

回到主要问题,你如何解决这些问题?

1 个答案:

答案 0 :(得分:1)

这个问题只有一个解决方案。 仅将JavaScript视为用户界面的语言。仅此而已。不要将任何敏感数据存储在浏览器中,也不要存储任何敏感逻辑(例如数据库查询)。 无法隐藏客户端的网络流量或源代码

我通常在客户端创建某种用户对象,其中包含用于解析权限的用户角色,并且我使用 display 控件的权限,例如仅向管理员等显示一些按钮。但是,这仅影响页面的显示,如果用户与该控件交互,则控件依赖于服务器,如果用户没有适当的权限。服务器也是如此,与控件的交互失败,所以如果有一些知识的人改变了客户端上的用户对象并授予他管理员角色,他只看到控件管理员会看到的内容,但是他不能做管理员操作,也不能看到任何敏感数据。