javascript - JavaScript 变量赋值中潜在的 XSS

标签 javascript security xss

背景 我正在尝试更好地了解潜在的 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/

相关文章:

javascript - 如何使用 Hooks 在 React 中获取父宽度/高度?

javascript - 如何使用 VM 在 nodejs 中安全地运行用户代码而不容易受到攻击

javascript - 您好,我正在尝试将我的数据保存在 nodejs rest api 中,但出现错误 "req.status is not a function"

sockets - 在套接字连接时从 kext 验证客户端

asp.net-mvc - 具有不同角色的多个组织中的用户

javascript - 使用脚本标签的跨站点脚本,更改脚本标签的 src,我们可以使用 id 作为脚本标签

javascript - Chrome打包的app,如何提交表单

http - Servlet 反射跨站脚本漏洞

typescript - 警告 : sanitizing unsafe style value url

python - input() vs raw_input() 相关安全问题的简单解释