2014-07-21 37 views
8

我有一個頁面,我設置了內容安全策略的這樣的腳本源:爲什麼內嵌安全策略阻止了這種內嵌JavaScript?

script-src 'self' *.uservoice.com *.intuit.com ajax.googleapis.com localhost:* 

當我加載與我創建自己來測試一個硬編碼的嵌入式腳本的頁面,它被阻止像預期:

拒絕,因爲它違反了以下 內容安全策略指令執行內嵌腳本:「腳本的src‘自我’ * .uservoice.com * .intuit.com ajax.googleapis.com本地主機: *「。 「內聯不安全」關鍵字,散列('sha256 -...')或現成的 ('nonce -...')是啓用內聯執行所必需的。

然而,當我動態插入一個新的腳本,該腳本不堵塞,例如,這仍然執行:

$("body").append("<script>alert('xss');</script>") 
我使用的是Chrome在這裏進行測試的瀏覽器

。我希望這個腳本也會被阻止,因爲這會有助於防止xss。有什麼我可以改變來阻止這種類型的腳本注入?

+2

你爲什麼要封鎖?這是非常安全的,除非你不信任你自己的代碼(在這種情況下,你需要清理它)。 – soktinpk

+1

撰寫安全的JavaScript嗎? – Ryan

+3

jQuery'eval'uates'