RIA中JavaScript中基于角色的安全性


Role Based Security in JavaScript in RIA

我正在尝试学习用JavaScript开发Web应用程序,为此我正在开发一个简单的时间跟踪应用程序。我正在使用ExtJS来动态创建UI。

这将允许员工提交他们在不同项目上花费的时间,并允许经理向用户添加项目,等等

一旦用户登录,我就确定他们的角色,并提供适当的UI(通过JavaScript)。

我想知道做这件事最好、最安全的方法是什么?(我当然在服务器端检查授权,这样就没有人可以通过httpget/post调用我的PHP服务来进行更改)

我从禁止未经授权的人,甚至通过篡改JavaScript(例如,从FireBug控制台)来查看未授权的UI的角度提出了要求。

我正在考虑创建一个服务,该服务通过JSONP返回用于创建适当UI的适当脚本。对我来说,这感觉很WTF ey,所以我想知道是否有更好的方法。

在naugtur的注释基础上构建。你必须始终假设有一个非常聪明的人可以为自己构建UI,或者伪造任何对服务器的调用,而UI的任何部分都可以这样做。

基于此,你在问题结束时建议的方式的前提似乎一开始就被揭穿了。一旦我们解决了这个问题(我假设你制作了一个单页应用程序),最简单的方法就是总是在登录屏幕上直接转储所有javascript代码,只允许用户根据自己的角色查看他们需要什么(例如,每个角色都有不同卡片的卡片面板就是一个例子)。

我还想补充一点,在应用程序的后端,您应该始终进行安全检查,以确保用户在执行任何操作时都具有正确的角色。如果你的应用程序是面向互联网的,这是必要的,总有那个用户会浏览你的代码,看看他可以恶意或只是为了好玩。。。或者那个想看看当他使用调试器创建自己的带有不同参数的假ajax调用时会发生什么的人。