【发布时间】:2015-01-01 17:55:10
【问题描述】:
我想实施尽可能严格的内容安全政策 (CSP)。根据this intro on CSP,内联样式不好(强调我的):
内联样式的处理方式相同:样式属性和样式标签都应合并到外部样式表中,以防止 CSS 支持的各种令人惊讶的巧妙数据泄露方法。
如果你真的,绝对必须有内联脚本和样式,你可以通过在 script-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 会阻止这种情况。我能做什么?
【问题讨论】:
标签: html css ruby-on-rails content-security-policy