带有 HTML 转义的 XSS JavaScript 双引号字符串可能吗?

信息安全 javascript xss
2021-08-22 12:16:56

如果网站在双引号字符串中插入 HTML 编码的用户输入,是否可以在 JavaScript 变量中注入 XSS?

var userString = "perfectly "safe" input from user?";

1个回答

鉴于这种简单的字符限制,可能无法获得 XSS。但是,攻击者可以注入转义字符,例如:

var userString = "perfectly "safe" input from user?\"+"+alert(1);

在这种情况下,攻击者将在标签内两个位置存在的两个不同变量中注入 a\和 an 转义字符是开发人员在清理攻击者控制的数据时通常会忘记的一种控制字符。alert(1)<script>

...也希望您考虑到这一点:

<script>
var userString = "</script><script>alert(1)//"
</script>