我在基于 Html/Javascript 构建的 Web 应用程序上使用了一些全局变量。我跨页面(或部分页面)使用这些变量,有时它们用作 ajax 调用的发布数据。我的问题是:这有多安全?当然,我可以为这些变量设置不同的值(例如使用控制台),然后进行依赖于此 var 的调用。想象一下,用户设置了一些与他甚至无法访问的东西相对应的 Id。
应该怎么做?
提前致谢
最佳答案
从安全的 Angular 来看,这与任何 Web 应用程序没有什么不同。
从浏览器发送的任何内容都必须被服务器视为不可信。这包括 URL 参数、表单发布数据、cookie、http header 和由 javascript 控制的任何内容。所有这些项目都可以被攻击者操纵。
本质上,客户端中的值是什么并不重要,您只需要在它们以新的 HTTP 请求(包括 XHR)形式访问您的服务器时担心它们。在那之前,具有错误值的变量不会造成任何损害。
确保您的服务器可以正确验证当前用户,并且只允许他们访问他们有权执行的数据和操作。确保检查从浏览器接收到的所有数据是否正确(如果已知)或数据类型正确且在预期范围内,如果不正确则拒绝数据并中止操作。
关于javascript 全局变量 - 保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8169331/