2015-06-05 31 views
1

我有一个包含下拉列表的HTML页面。选择框内的转义脚本标记选项(Chrome)

<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中不会。
小提琴链接:http://jsfiddle.net/nghiadthp/3mpmkfr8/

+0

你的意思是'alert('XSS')'? –

+0

在JSFiddle,CodePen或类似的地方进行演示 – nunoarruda

+0

@Alex:是的,我的意思是说! –

回答

1

Chrome提供了可以通过在你的浏览器(图标)>属性目标路径设置此标志将被关闭的功能:

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

尽管如此,你在做什么从该产品试图将遭受

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

CSP 2级允许你使用一个密码临时数(使用一次的号码)或散列

所以,你可能想可能创建一个以.json永久封锁的内嵌脚本提供了内嵌脚本的向后兼容性manifest与有确切的(转义)script在SHA256

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

内容安全,策略转换"unsafe-inline"属性:脚本的src“SHA256,sha256-41f152968d8d75de3055b59b194f3a5a993b65b06c1586d7dda 9d73be115271d '


或使用nonce属性:

内容安全-政策:脚本SRC

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

必须在清单的脚本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不会让您无需执行你可能期望与在线script小号
(使用&lt;span&gt;测试,它会工作!) 你
知道你正在做的疯狂。
顺便说一下,没有元素被允许进入option标记,不管是否逃脱,所以Chrome真的很聪明。特别关于XSS预防。