用户信息作为前端的全局var

User information as global var on front-end

本文关键字:全局 var 前端 信息 用户      更新时间:2023-09-26
  • 防止web应用程序的最终用户操作前端JavaScript全局变量和其他运行时对象
  • 我可以采取哪些最佳步骤来最大限度地降低安全性"坏"用户的漏洞和篡改
  • 他们是否通过了应用程序的身份验证

防止用户篡改全局变量的最佳解决方案是不使用全局变量。但这更像是一种良好的做法,而不是一种安全措施。

您似乎对客户端代码的工作方式有一个小小的误解客户端代码在客户端上运行。您无法控制客户端,您的用户可以控制。你给了我的浏览器代码,并恳请它按照你的意愿运行。浏览器绝对没有义务按照你的意图实际运行代码。

从安全的角度来看,永远不要假设你的客户端代码按照你想要的方式运行。即使Curt的建议也可以通过使用调试器和开发人员控制台来克服。

永远不要依赖用户输入。永远不要依赖客户端验证。切勿向客户端发送任何其他用户的敏感信息。你发送的任何信息都会被用来对付你。

就安全漏洞而言,前端不应该为此担心Javascript不会保护您免受此攻击

您也无法阻止用户操纵全局变量。它们就在控制台上。

不过,我想问一下,为什么要在全局命名空间中塞满变量。

这里最好的选择是创建显示模块模式,该模式创建私有变量。

var MyFunction = function(){
   var _ = {
      Init: function(){
      },
      PrivateVariable: "foo bar"
   }
   return {
      Init: _.Init
   }
}();

然而,这更多地用于封装,而不是用于安全方面的好处客户端没有安全性。这一切都应该在服务器端处理。