我在基于Html / Javascript构建的Web应用程序上使用了一些全局变量。我在页面(或部分页面)中使用这些变量,有时它们被用作ajax调用的后期数据。我的问题是:这有多安全?我当然可以为这些变量设置不同的值(例如使用控制台)然后,依赖于此变量的调用。想象一下,用户设置了一些与他甚至无法访问的内容相对应的Id。
应该怎么做?
提前致谢
答案 0 :(得分:7)
从安全性的角度来看,任何Web应用程序都没有什么不同。
从浏览器发送的任何内容都必须被服务器视为不受信任。这包括URL参数,表单发布数据,cookie,http标头和由javascript控制的任何内容。所有这些项目都可以被攻击者操纵。
基本上,客户端中的值无关紧要,只需要以新HTTP请求(包括XHR)的形式访问服务器时就要担心它们。在此之前,具有错误值的变量不会造成任何损害。
确保您的服务器可以正确验证当前用户,并且只允许他们访问他们有权执行的数据和操作。确保检查从浏览器接收的所有数据是正确的(如果已知)或正确的数据类型并且在预期限制内,拒绝数据并在不执行时中止操作。
答案 1 :(得分:1)
如果你使用jquery,你可以使用 $.data()
有了这个,你可以将数据与一个元素相关联,因此未经授权的用户将无法访问它
答案 2 :(得分:-1)
Javascript具有运行时类型标识(一切都像var basic一样),它是一种松散类型的语言。
Javascript虽然有自己的安全模型
不可能保护你的javascript文件的来源,甚至pwd保护它,因为这是更好的服务器端。
即使加密或解密也不起作用,因为不知何故,您需要告诉用户密钥
更糟糕的是,JavaScript可以在运行时自行修改 - 而且经常会这样做。这意味着安全威胁可能不会在语法或代码传递到客户端时出现,但是一旦脚本执行就可能出现。
没有可以解析和拒绝恶意脚本的JavaScript代理,没有主动扫描JavaScript以获取基于代码的漏洞的解决方案,也没有解决问题的外部答案。这意味着我们不得不依赖浏览器开发人员,不仅要编写一个好的浏览器,而且还要考虑我们喜欢的所有花俏,但为了安全起见。