gpt4 book ai didi

javascript - 选择框选项内的转义脚本标记 (Chrome)

转载 作者:行者123 更新时间:2023-11-28 17:04:09 24 4
gpt4 key购买 nike

我有一个包含下拉列表的 HTML 页面。

<html>
<body>
<select>
<option >1</option>
<option >2</option>
<option >3</option>
<option >&lt;script&gt;alert('XSS')&lt;/script&gt;</option>
</select>
</body>
</html>

在 Chrome 中,选择框不会打开。

当我在 FireFox 中打开它时,下拉列表会打开,但在 Chrome 中它不会打开。
fiddle 链接:http://jsfiddle.net/nghiadthp/3mpmkfr8/

最佳答案

Chrome 有一个功能,可以通过在您的 Chrome(图标)> 属性目标路径中设置此标志来关闭:

...ome.exe" --disable-web-security

尽管如此,您正在尝试的将遭受这种商品:

https://developer.chrome.com/extensions/contentSecurityPolicy

CSP Level 2 offers backward compatibility for inline scripts by allowing you to whitelist specific inline scripts using either a cryptographic nonce (number used once) or a hash

所以你可能想要创建一个 .json manifest具有 "unsafe-inline" 属性,该属性具有在 SHA256 中转换的确切(未转义)脚本

<script>alert('XSS')</script> // >> convert it to SHA256

Content-Security-Policy: script-src 'sha256-sha256-41f152968d8d75de3055b59b194f3a5a993b65b06c1586d7dda9d73be115271d'


或使用 nonce 属性:

&lt;script nonce=a3afdc68d2731d5187f58e833610c951&gt;alert('XSS')&lt;/script&gt;

必须匹配 list 的脚本源:

Content-Security-Policy: script-src 'nonce-a3afdc68d2731d5187f58e833610c951'

https://developer.chrome.com/extensions/contentSecurityPolicy
https://developer.chrome.com/extensions/manifest
https://w3c.github.io/webappsec/specs/content-security-policy/
http://www.html5rocks.com/en/tutorials/security/content-security-policy/

因此 Chrome 将不允许您使用内联脚本
执行您可能期望的操作(使用 <span> 进行测试,它会起作用!)没有确切地知道你在做什么疯狂。
顺便说一句,option 标签中不允许有任何元素,无论是否转义,因此 Chrome 对此非常聪明。特别是关于 XSS 预防。

关于javascript - 选择框选项内的转义脚本标记 (Chrome),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30657122/

24 4 0