2012-08-11 105 views
3

我在閱讀Chrome擴展程序文檔「Content Security Policy (CSP)」。它說:爲什麼內聯JS塊不安全?

內聯JavaScript以及像eval這樣危險的字符串到JavaScript的方法 將不會執行。此限制禁止內聯 塊和內聯事件處理程序(例如<button onclick="...">)。

...

有放寬限制對執行 聯JavaScript的機制。特別是,設置 包含不安全內聯的腳本策略將不起作用。這是故意的。

爲什麼在線<script>塊不安全?任何人都可以解釋嗎?如果你能舉例說明會更好。

謝謝。

回答

4

正如頁說:

首先通過限制使它不可能對你不小心執行惡意第三方提供的腳本 劃出一個巨大的類的跨站點腳本攻擊 。

基本上,您加載的任何腳本都需要位於本地可訪問的擴展名的單獨文件中。這可以防止加載是那些獲得注入到你的網頁的第三方腳本或包括他們喜歡:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 

這方面的一個例子是,如果你有一個表格,用戶可以填寫。用戶可以輸入帶有一些JS的腳本標籤。假設它就像一個討論論壇。我進入並做了一個主題,但它有一些隱藏的JS。我們還假設在發佈之前不要清除它。現在我的文章有JS,每當有人看到它時都會執行。這可以防止腳本被執行。

+0

我試圖瞭解這些內嵌'