我想實施儘可能嚴格的內容安全策略(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的默認阻止那。我能做什麼?