我試圖使reCAPTCHA與嚴格的內容安全策略一起工作。這是基本的版本我都有,其中正常工作:帶內容安全策略的reCAPTCHA
HTML
<script src='//www.google.com/recaptcha/api.js' async defer></script>
HTTP頭
Content-Security-Policy: default-src 'self'; script-src 'self' www.google.com www.gstatic.com; style-src 'self' https: 'unsafe-inline'; frame-src www.google.com;
不過,我想在style-src
部分擺脫unsafe-inline
的。在documentation上寫着:
我們推薦使用CSP3記錄的基於現時值的方法。確保將您的隨機數包含在reCAPTCHA api.js腳本標記中,然後我們將處理剩下的內容。
但我不能使它工作...這是我的嘗試:
HTML
<script src='//www.google.com/recaptcha/api.js' nonce="{NONCE}" async defer></script>
HTTP頭
Content-Security-Policy: default-src 'self'; script-src 'self' https: 'nonce-{NONCE}'; style-src 'self' 'nonce-{NONCE}'; child-src www.google.com;
這是我的錯誤搭上Chrome 53:
拒絕應用內聯樣式,因爲它違反了以下內容安全策略指令:「style-src'self'https:'nonce- {NONCE}'」。內聯執行需要'不安全內聯'關鍵字,一個散列('sha256-MammJ3J + TGIHdHxYsGLjD6DzRU0ZmxXKZ2DvTePAF0o =')或一個隨機數('nonce -...')。
我缺少什麼?
非常有用的鏈接到其他問題跟蹤相關問題! – Dargmuesli