[英]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.