2017-06-12 62 views
2

我已經在Visual Studio 2015專業版中創建了新的asp.net mvc 5項目 並且我添加了meta標籤我的佈局爲內容安全策略 -拒絕應用內聯樣式,因爲它違反了以下內容安全策略指令:「style-src'self'」modernizr

<meta http-equiv="content-security-policy" 
    content="default-src 'none'; script-src 'self'; 
    connect-src 'self'; img-src 'self'; style-src 'self';" /> 

現在,當我跑我的應用我獲得以下的Chrome瀏覽器的控制檯錯誤 -

拒絕,因爲它違反了以下內容安全策略指令適用內嵌樣式:「style-src'self'」。 「內聯不安全」關鍵字,一個散列('sha256-CwE3Bg0VYQOIdNAkbB/Btdkhul49qZuwgNCMPgNY5zw =')或一個隨機數('nonce -...')是啓用內聯執行所必需的。 Modernizr的-2.6.2.js:157

有6個錯誤的Modernizr的-2.6.2.js:157,一個是有關的腳本,即拒絕加載腳本本地主機

我不我認爲我的項目中沒有任何內聯風格,爲什麼CSP拒絕應用錯誤?

回答

2

顯然modernizr要麼注入一個帶有CSS屬性的style元素,要麼注入一些style屬性;你可以通過改變你的CSP政策這個對付它:

<meta http-equiv="content-security-policy" 
    content="default-src 'none'; script-src 'self'; 
    connect-src 'self'; img-src 'self'; 
    style-src 'self' 'sha256-CwE3Bg0VYQOIdNAkbB/Btdkhul49qZuwgNCMPgNY5zw=';" /> 
+0

感謝@sideshowbarker,這正是我試圖做的,是的,它解決了我的問題,但問題是我必須爲所有的錯誤都這樣做對於我的應用程序來說,這太差了將近50個錯誤,我必須複製每個散列並將其添加到相應的指令值,任何快捷方式都將非常有幫助。 – vishwajeetrkale

+0

如果modernizr注入所有內聯的東西,而不是看起來像你的選擇要麼(a)添加所有這些哈希,(b)使用'不安全的內聯'(但它基本上破壞了CSP的全部目的......)或c)不要使用modernizr – sideshowbarker

相關問題