我有一个包含下拉列表的HTML页面。
<html>
<body>
<select>
<option >1</option>
<option >2</option>
<option >3</option>
<option ><script>alert('XSS')</script></option>
</select>
</body>
</html>
在Chrome中,选择框无法打开。
当我在FireFox中打开它时,下拉列表会打开,但在Chrome中则不会 小提琴链接:http://jsfiddle.net/nghiadthp/3mpmkfr8/
答案 0 :(得分:1)
Chrome可以通过在Chrome(图标)&gt;中设置此标记来关闭Chrome功能。属性目标路径:
...ome.exe" --disable-web-security
尽管如此,您正在尝试遭受此商品的:
https://developer.chrome.com/extensions/contentSecurityPolicy
CSP Level 2通过允许您使用加密随机数(使用一次的数字)或散列
将特定的内联脚本列入白名单,为内联脚本提供向后兼容性
所以你可能想要创建一个带有"unsafe-inline"
属性的.json manifest,该属性具有在SHA256中转换的完全(未转义)script
<script>alert('XSS')</script> // >> convert it to SHA256
Content-Security-Policy:script-src&#39; sha256-sha256-41f152968d8d75de3055b59b194f3a5a993b65b06c1586d7dda9d73be115271d&#39;
或使用nonce
属性:
<script nonce=a3afdc68d2731d5187f58e833610c951>alert('XSS')</script>
必须与您的清单&s-script-src匹配:
内容 - 安全 - 政策:script-src&#39; nonce-a3afdc68d2731d5187f58e833610c951&#39;
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不允许您按照您的预期执行内联script
(使用<span>
进行测试,它会正常工作!)
没有你确切地知道你正在做的疯狂
顺便说一句,没有元素被允许进入option
标签,转义与否,因此Chrome非常聪明。特别关于XSS预防。