javascript全局变量 - 保护

时间:2011-11-17 15:02:56

标签: javascript security variables global

我在基于Html / Javascript构建的Web应用程序上使用了一些全局变量。我在页面(或部分页面)中使用这些变量,有时它们被用作ajax调用的后期数据。我的问题是:这有多安全?我当然可以为这些变量设置不同的值(例如使用控制台)然后,依赖于此变量的调用。想象一下,用户设置了一些与他甚至无法访问的内容相对应的Id。

应该怎么做?

提前致谢

3 个答案:

答案 0 :(得分:7)

从安全性的角度来看,任何Web应用程序都没有什么不同。

从浏览器发送的任何内容都必须被服务器视为不受信任。这包括URL参数,表单发布数据,cookie,http标头和由javascript控制的任何内容。所有这些项目都可以被攻击者操纵。

基本上,客户端中的值无关紧要,只需要以新HTTP请求(包括XHR)的形式访问服务器时就要担心它们。在此之前,具有错误值的变量不会造成任何损害。

确保您的服务器可以正确验证当前用户,并且只允许他们访问他们有权执行的数据和操作。确保检查从浏览器接收的所有数据是正确的(如果已知)或正确的数据类型并且在预期限制内,拒绝数据并在不执行时中止操作。

答案 1 :(得分:1)

如果你使用jquery,你可以使用 $.data()

有了这个,你可以将数据与一个元素相关联,因此未经授权的用户将无法访问它

答案 2 :(得分:-1)

Javascript具有运行时类型标识(一切都像var basic一样),它是一种松散类型的语言。

Javascript虽然有自己的安全模型

  1. 用户无法访问文件(r / write)
  2. 无法访问或查看用户位置,文件,无需打开窗口等
  3. 不可能保护你的javascript文件的来源,甚至pwd保护它,因为这是更好的服务器端。

    即使加密或解密也不起作用,因为不知何故,您需要告诉用户密钥

    更糟糕的是,JavaScript可以在运行时自行修改 - 而且经常会这样做。这意味着安全威胁可能不会在语法或代码传递到客户端时出现,但是一旦脚本执行就可能出现。

    没有可以解析和拒绝恶意脚本的JavaScript代理,没有主动扫描JavaScript以获取基于代码的漏洞的解决方案,也没有解决问题的外部答案。这意味着我们不得不依赖浏览器开发人员,不仅要编写一个好的浏览器,而且还要考虑我们喜欢的所有花俏,但为了安全起见。