背景 我正在尝试更好地了解潜在的 XSS 攻击场景。据我了解,如果您从服务器检索数据组件“unknow_data”并且未验证它,则以下情况可能会允许恶意代码运行。
<script src = unknow_data >
或
<a href=unknow_data></a>
其中 unknow_data
可能是“javascript:somethingMalicious”而不是纯数据。
问题
将未知数据直接传递到 JavaScript 对象而不是脚本标记或 html 属性时是否存在 XSS 威胁?例如:
var G = unknow_data;
什么 JavaScript 代码(如果有)必须注入(inject)到普通的 JavaScript 对象中才会构成安全风险?到目前为止我的想法是,如果您打电话,这只是一个威胁
eval(G)
我的理解正确吗?
最佳答案
这肯定是一个安全漏洞。
例如,unknown_data
可以是 1;警报('xss')
。
但是,如果您使用服务器端语言对它进行 JSON 编码,那么在那里打印它是安全的(但是它可能包含编码攻击 - 像平常一样根据其上下文进行处理)。
关于javascript - JavaScript 变量赋值中潜在的 XSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25439028/