[英]How secure variables in JS/AngularJS?
我试图使我的单页应用程序更安全。 在代码中,我有发帖请求女巫返回用户信息。
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开发工具中打开并重新键入用户角色,然后转到模板并获取管理员仪式。
我该如何解决?
无法阻止用户在其浏览器中修改dom。
向客户端公开诸如“用户角色”之类的属性的唯一原因是,如果您使用它来进行美学上的更改。 对其进行修改应该不会影响其帐户的行为。
此类数据应仅存储在服务器端的会话和/或数据库中
根据定义,JavaScript是一种客户端脚本,一种保证语言。 对象和函数可以通过注入的js或用户直接在浏览器中进行更改。
因此,重要的是不要依赖js来保护您的应用程序。 通常情况下,应用程序的js / angular层只能提供一个精美的用户界面,它可以包含一些简单的业务逻辑或检查,但是只是使用户的操作更顺畅或更快(如果可以在发送之前检查客户端的电子邮件地址,服务器的地址)。 但是,此UI与您的服务器端代码“对话”,在那里您应该具有另一个安全层,该安全层可以防止未经授权的用户进行操作。
简而言之,请在用户界面中使用js,并利用客户端脚本的速度发挥自己的优势,但请确保将服务器端调用封装在自己的安全层中,以防止未经授权的调用。
无法防止在js中篡改您的数据,因此请确保篡改不会泄漏信息或更改用户无法访问的数据。
问候,
塞姆
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.