1

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

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

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

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

我从不允许未经授权的人的角度询问,甚至通过摆弄 JavaScript(例如从 FireBug 控制台)来查看未经授权的 UI。

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

4

1 回答 1

2

以 naugtur 的评论为基础。您必须始终假设会有一个非常聪明的人可以为他/她自己构建 UI,或者伪造任何 UI 的任何部分都可以执行的对服务器的调用。

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

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

于 2013-02-14T18:31:48.723 回答