2013-02-14 107 views
1

我正在尝试学习JavaScript中Web应用程序的开发,为此我开发了一个简单的时间跟踪应用程序。我正在用ExtJS开发这个动态创建UI。RIA中基于角色的JavaScript安全

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

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

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

我从禁止非授权人的角度询问,甚至通过摆弄JavaScript(例如从FireBug控制台)来查看非授权用户界面。

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

+1

该问题可能过于笼统,无法得到合理的答案。你永远无法确定没有人为自己构建管理用户界面。最常见的做法是后端拥有一切安全性,前端是静态的,如果有人想下载他不能使用的UI,那么不用担心。 – naugtur 2013-02-14 08:29:46

回答

2

建立在naugtur的评论。您必须始终假定将会有一个非常聪明的人可以为自己构建UI,或者假冒UI的任何部分都可以对服务器进行的任何调用。

在此基础上,您提出的对问题结束的方式的前提似乎被揭穿。一旦我们解决了这个问题(我假设你制作一个单页面应用程序),最简单的方法就是始终在登录屏幕上转储所有的JavaScript代码,并且只允许用户根据他们的需要查看他们需要的内容角色(例如,每个角色都有不同卡片的卡片面板就是一个例子)。

我还想补充一下,在应用程序的后端,你应该总是有安全检查,以确保用户对他正在做的任何操作都有正确的角色。如果你的应用程序是面向互联网的,那么这是必需的,总会有那个用户会查看你的代码,看看他可以做什么恶意或者只是为了好玩......或者那个人想知道当他使用调试器以不同的参数创建他自己的假阿贾克斯调用。

+0

我还会补充一点,我去年在一个大型项目中完全满足了您的要求。 – Reimius 2013-02-14 18:32:42