我正在寻找有关如何处理客户端JavaScript中的基本安全需求(例如授权)的良好资源,模式和实践。
我正在建立一个具有运行常见MVC框架之一的后端系统的网站。后端将处理所有实际的安全需求:授权和身份验证。前端将使用Backbone.js,jQuery和其他一些库来构建,以提供非常丰富的用户体验。
这是我需要处理的一种情况的示例:
我有一个数据网格,上面有几个按钮。如果您在网格中选择一个项目,则某些按钮将启用,因此您可以对所选项目执行该操作。此功能易于构建...
现在,我需要考虑授权。后端服务器将仅呈现允许用户使用的按钮。此外,当用户尝试执行该操作时,后端服务器将检查授权。 ...因此后端被遮盖了,如果未经授权,用户将无法执行他们尝试的操作。
但是JavaScript呢?如果我的代码是使用一堆jQuery单击处理程序或其他启用和禁用按钮的事件设置的,我该如何处理不存在的按钮?我是否只是编写一堆难看的if
语句来检查按钮的存在?还是以一种只允许我根据授权将存在的按钮的JavaScript发送到浏览器的方式编写JavaScript?或者 ???
现在想象一个基于授权的树 View 可能允许或不允许拖放功能...以及基于授权可能存在或可能不存在的添加/编辑表单...以及所有其他复杂的授权需求,以及很多JavaScript来运行这些前端。
我正在寻找用于处理这类情况的资源,模式和实践,其中后端处理真正的授权,但前端还需要根据授权考虑不存在的情况。
最佳答案
我可以看到三件事:
我非常喜欢嵌套和高度模块化的Backbone View 。也就是说,树中的每一行都可以是Backbone View ,并且可以对自己的授权要求使用react。
所有这三个都需要一个已设置的事件结构(例如,使用您自己的
vent
PubSub处理程序),您可以在其中基于RESTful服务器请求的响应或某些客户端功能来触发授权检查。关于javascript - 具有后端授权的JavaScript安全性模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8140084/