簡體   English   中英

為什么內聯JS塊不安全?

[英]Why are inline JS blocks unsafe?

我正在閱讀Chrome擴展程序文檔“ 內容安全策略(CSP) ”。 它說:

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

...

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

為什么內聯<script>塊不安全? 有人能解釋一下嗎? 如果你能舉例,會更好。

謝謝。

正如頁面所說:

第一個限制消除了大量的跨站點腳本攻擊,使您無法意外執行惡意第三方提供的腳本。

基本上,您加載的任何腳本都需要位於擴展本地可訪問的單獨文件中。 這可以防止您加載注入頁面或包含它們的第三方腳本,如:

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

例如,如果您有一個用戶可以填寫的表單。 用戶可以在其中輸入帶有一些JS的腳本標記。 讓我們說它就像一個討論論壇。 我進去做一個主題,但它有一些隱藏的JS。 我們還假設您在發布之前不要清除它。 現在我的帖子有JS,每當有人看到它時都會執行。 這可以防止該腳本被執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM