用户信息作为前端的全局var
User information as global var on front-end
- 防止web应用程序的最终用户操作前端JavaScript全局变量和其他运行时对象
- 我可以采取哪些最佳步骤来最大限度地降低安全性"坏"用户的漏洞和篡改
- 他们是否通过了应用程序的身份验证
防止用户篡改全局变量的最佳解决方案是不使用全局变量。但这更像是一种良好的做法,而不是一种安全措施。
您似乎对客户端代码的工作方式有一个小小的误解客户端代码在客户端上运行。您无法控制客户端,您的用户可以控制。你给了我的浏览器代码,并恳请它按照你的意愿运行。浏览器绝对没有义务按照你的意图实际运行代码。
从安全的角度来看,永远不要假设你的客户端代码按照你想要的方式运行。即使Curt的建议也可以通过使用调试器和开发人员控制台来克服。
永远不要依赖用户输入。永远不要依赖客户端验证。切勿向客户端发送任何其他用户的敏感信息。你发送的任何信息都会被用来对付你。
就安全漏洞而言,前端不应该为此担心Javascript不会保护您免受此攻击。
您也无法阻止用户操纵全局变量。它们就在控制台上。
不过,我想问一下,为什么要在全局命名空间中塞满变量。
这里最好的选择是创建显示模块模式,该模式创建私有变量。
var MyFunction = function(){
var _ = {
Init: function(){
},
PrivateVariable: "foo bar"
}
return {
Init: _.Init
}
}();
然而,这更多地用于封装,而不是用于安全方面的好处客户端没有安全性。这一切都应该在服务器端处理。
相关文章:
- 创建不带 var 关键字的全局变量时出现意外行为
- 全局作用域中的var someVariable和JavaScript中的window[“someVariable”]之间
- Javascript Shadowing - 如果您尝试使用 VAR 关键字更改不存在的全局变量,则会产生效果
- 由“var”全局定义的变量是什么范围
- 为什么我已经定义的全局变量被IE8中的另一个var语句覆盖
- “var”在全局范围内做什么
- 从全局范围中删除var
- 将全局var传递给vue组件属性
- 如何在没有 ESLint no-unused-var 错误的情况下公开全局 javascript 函数
- 如何在regexp中传递全局JS var
- 变量没有't在jquery中充当全局var
- ajax函数中的javascript全局var
- 声明一个没有'var'让它成为一个全局变量或者只是改变它的值
- 创建全局'for'变量.应该是'对于(var项目…'
- 为什么没有在object方法中声明var的变量不会成为全局变量
- 使用& # 39;var # 39;和& # 39;这个# 39;在node.js程序的全局作用域中
- javascript '全局变量不是'window'与全局变量'var'不同
- 全局var混淆:var a vs window.a
- 用户信息作为前端的全局var
- jQuery:更新全局var并重新运行函数