我想实施尽可能严格的内容安全策略(CSP)。据this intro on CSP,内嵌样式是不好的(重点煤矿):Can Rails可以呈现无内联CSS的表单来实现更严格的内容安全策略吗?
内嵌样式是相同的方式处理:无论是样式属性和样式的标签应合并成为外部样式表,以防止各种出奇的聪明数据CSS支持的渗透方法。
如果您确实必须拥有内联脚本和样式,则可以通过在脚本src或style-src指令中添加'unsafe-inline'作为允许的源来启用它。 但请不要。
默认form_tag
方法插入一个隐藏字段为UTF-8(实际上,我是在寻找真实性令牌,但在我的标记无法找到它):
<div style="display:none"><input type="hidden" value="✓" name="utf8"></div>
其中 - 因为display:none
- 在Firefox 32被报告为以下CSP的侵犯:
$ curl -I http://localhost:3000 | grep Content-Security | fold
Content-Security-Policy-Report-Only: default-src https: 'self'; connect-src http
s: 'self'; font-src https: data:; frame-src https: 'self'; img-src https: 'self'
data:; media-src https: 'self'; object-src https: 'self'; script-src https: 'se
lf'; style-src https: 'self';
我想不允许在我的CSP内联CSS样式,但Rails的默认阻止那。我能做什么?