基本上我想在客户端存储一个我不希望人们查看或更改的变量。
在以下代码示例中:
(function () {
var foo = 'bar';
})();
任何人都可以使用工具或浏览器访问和/或(更重要的是)更改foo的值吗?可以理解可能会执行此操作的更多信息或工具的链接。我将在同一时间研究更多。
提前致谢
答案 0 :(得分:3)
是的,他们可以修改foo的值。作为一般规则,如果您不希望客户端操纵该值,请不要让它们访问它(即,将用户ID或此类信息放在DOM或客户端)。您可能需要进行一些state management
研究,加密Cookie,会话,或者如果您使用ASP.NET
ViewState/ViewBag
等。
答案 1 :(得分:0)
可以将javascript注入任何页面,从那里你可以操作页面上的每个javascript对象/变量。因此,javascript正在接收的任何数据都应加密(如果您担心安全性)。
为了给您一点提示,请尝试打开您的开发人员工具。在chrome中,Control-Shift-I。单击脚本选项卡,然后您将看到脚本正在使用的所有变量。可以双击脚本中的任何位置并添加/删除代码片段。
F.Y.I如果您使用的是Firefox,我强烈推荐使用Firebug。它超越了chrome的开发工具,但我发现铬更快..至少在我的慢速笔记本电脑(Ubuntu FTW)上。
希望这有帮助