Web应用程序安全:JavaScript代码和数据的替换

Web-app security: substitution of JavaScript code and data

本文关键字:数据 替换 代码 JavaScript 应用程序 安全 Web      更新时间:2023-09-26

现在我正在考虑实现一些代码的eval()-ing,从服务器动态加载。实际上,任何类型的"eval()"操作都不是一个好主意(尤其是对于安全性)。想到什么:

如果我不使用SSL或任何服务器身份验证技术,那么很容易替换我的包并在用户机器上运行任何JS代码。现在,当有一些用于硬件的API(WebGL)时,它可能(?)是危险的。

但是,另一方面,如果我以某种方式确保这一点,那就没有意义了,因为如果用户自定义,当浏览器从加载页面的服务器(例如从另一个网站)请求.JS文件时,net JS代码可能会被简单地替换。

那么,如果我的网络应用程序中没有重要数据,我应该实现任何服务器认证之王吗?

如果包含eval()指令的页面和您正在动态加载的JS源代码位于同一服务器上,则可能不会因此降低安全性-无论您是否使用eval(),攻击者都可以简单地替换页面而不是动态加载的代码,并实现相同的破坏性效果。

动态加载的eval()ing代码一直在Javascript中完成。例如,当您通过jQuery的.load()加载HTML时,其中的任何JS都将被提取并自动生成eval()

如果您需要以这种方式eval(),我认为您不会添加安全性问题(尽管您可以通过更改架构来避免使用它)

您对eval的使用非常偏执。如果有人可以修改得到评估的服务器响应,他们也可以引入一个新的评估。

如果你只关心通过中间人攻击修改你的响应,那么无论你是否在评估,你都应该使用SSL。