Web应用程序安全:JavaScript代码和数据的替换
Web-app security: substitution of JavaScript code and data
现在我正在考虑实现一些代码的eval()-ing,从服务器动态加载。实际上,任何类型的"eval()"操作都不是一个好主意(尤其是对于安全性)。想到什么:
如果我不使用SSL或任何服务器身份验证技术,那么很容易替换我的包并在用户机器上运行任何JS代码。现在,当有一些用于硬件的API(WebGL)时,它可能(?)是危险的。
但是,另一方面,如果我以某种方式确保这一点,那就没有意义了,因为如果用户自定义,当浏览器从加载页面的服务器(例如从另一个网站)请求.JS文件时,net JS代码可能会被简单地替换。
那么,如果我的网络应用程序中没有重要数据,我应该实现任何服务器认证之王吗?
如果包含eval()
指令的页面和您正在动态加载的JS源代码位于同一服务器上,则可能不会因此降低安全性-无论您是否使用eval()
,攻击者都可以简单地替换页面而不是动态加载的代码,并实现相同的破坏性效果。
动态加载的eval()
ing代码一直在Javascript中完成。例如,当您通过jQuery的.load()
加载HTML时,其中的任何JS都将被提取并自动生成eval()
。
如果您需要以这种方式eval()
,我认为您不会添加安全性问题(尽管您可以通过更改架构来避免使用它)
您对eval的使用非常偏执。如果有人可以修改得到评估的服务器响应,他们也可以引入一个新的评估。
如果你只关心通过中间人攻击修改你的响应,那么无论你是否在评估,你都应该使用SSL。
相关文章:
- 如何替换数据属性中的特定字符串单词
- 用Promises返回的数据替换出现的文本
- 按数据属性循环元素并替换值
- 追加子数据 URI,替换 IE 中的其他对象
- jQuery:裁剪以删除图像数据并替换为新数据
- 需要帮助-用数据库中的数据替换DIV内容而不刷新(使用-jquery、hmlhttp、CI)
- 循环并用parseJSON数据替换CSS
- 替换不处理数据属性值
- 是否有任何功能可以合并两个JSON数据集并替换旧信息?(节点.JS)
- 在javascript中替换当前数据时出错
- jquery替换DIV数据,然后跟踪对它的点击
- Breeze不会用其真实数据替换Ref:节点
- 用新数据替换observableArray
- AJAX 数据 - 替换 HTML 与更新值属性
- Chrome扩展:用剪贴板数据替换文本区域中的选定文本
- 用从某个URL检索到的数据替换整个html-body内容
- 数据表用其作用域之外的数据替换变量
- 使用PHP和javascript将数据替换为json文件
- 如果ajax完成,用请求的数据替换html
- 用新数据替换附加的数据