繁体   English   中英

JS / AngularJS中的变量如何安全?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM