【发布时间】:2020-01-31 12:37:49
【问题描述】:
我想澄清一些关于 JavaScript 变量分配和 XSS 漏洞的事情。如果分配发生在客户端而不是服务器端,是否存在 XSS 漏洞?比如这样的:
//www.test.com/index.html?q=malcious-javascript;
<script>
var x = window.location.search.substr(1);
</script>
此时分配不受信任的数据是否是一个安全问题?请注意,这不是服务器端分配。
我的理解是,在这一点上它不会是一个安全问题,即使它在被认为不安全的 JavaScript 上下文中。由于它只是一个字符串,因此它不能被分解,这与在服务器端生成的动态 JavaScript 不同,它被发送到浏览器并呈现为 HTML。只要数据不会在没有适当转义策略(例如 HTML 输入值)的情况下在不安全的上下文中呈现,那么将不受信任的数据分配给客户端的 JavaScript 变量是安全的。
如果我上面的理解是错误的,这是一个 XSS 漏洞,有人可以提供一个实际的 XSS 攻击向量的答案,以便我自己查看以更好地理解它的执行。
【问题讨论】:
标签: javascript xss