我努力让我的单页应用程序更安全。在代码中,我有发布请求女巫返回用户信息。
user: {
city: "USA"
company: "1"
country: "Boston"
email: "mouse@test.ru"
favorList: "17 8 7 1"
id: "46"
name: "Alex"
password: "d89885b09d30673f2a8321eeb1f8ab3bb3p6f"
phone: "+7(000)000-09-00"
role: "user"
settings: "false true"
viewingList: "8 17 143 138"
}
这个对象的一些字段我用于 ng-show/ng-if/ng-hide/ng-switch 管理模板上的 html。例如:<div ng-if="user.role == 'administrator'"
或者
<div ng-if="user.role == 'user'"
但用户可以在 chrome 开发工具中打开并重新输入用户 Angular 色,然后转到模板并获取管理员权限。
我该如何解决?
最佳答案
根据客户端脚本的定义,Javascript 是一种可靠的语言。 可以通过注入(inject)的 js 或用户直接在浏览器中更改对象和函数。
因此,不要依赖 js 来保护您的应用程序是非常重要的。通常你的应用程序的 js/angular 层只会提供一个花哨的用户界面,它可以包含一些简单的业务逻辑或检查,但只是为了让用户更流畅或更快(如果你可以在发送之前检查客户端的电子邮件地址服务器的地址,你应该)。但是,此 UI 会与您的服务器端代码“对话”,您应该有另一个安全层来防止用户未经授权的操作。
简而言之,将 js 用于您的用户界面并利用客户端脚本的速度为您带来优势,但请确保使用自己的安全层封装您的服务器端调用以防止未经授权的调用。
在 js 中无法防止篡改您的数据,因此请确保篡改不会泄露信息或更改用户无权访问的数据。
问候,
半月
关于javascript - JS/AngularJS 中的变量如何安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34137225/