您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Html5中內容安全策略CSP的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Html5中內容安全策略CSP的示例分析”這篇文章吧。
Cordova不支持內聯事件,所以點擊事件必須提取到js里面. 以下是從官網摘抄下來,希望對您有所幫助
為了緩解大量潛在的跨站點腳本問題,Chrome的擴展系統已經納入了內容安全策略(CSP)的一般概念。 這引入了一些相當嚴格的策略,默認情況下將使擴展更加安全,并為您提供了創建和實施管理可由擴展和應用程序加載和執行的內容類型的規則的功能。
一般來說,CSP作為黑客/白名單機制,用于擴展程序加載或執行的資源。 為您的擴展定義合理的策略,您可以仔細考慮擴展所需的資源,并要求瀏覽器確保這些資源是您的擴展程序可以訪問的唯一資源。 這些策略提供超出您的擴展請求的主機權限的安全性; 它們是一個額外的保護層,而不是替代。
在網絡上,這樣的策略是通過HTTP頭或元素來定義的。 在Chrome的擴展系統中,兩者都不是一個合適的機制。 相反,擴展的策略是通過擴展名的manifest.json文件定義的,如下所示:
{ … “content_security_policy”:“[POLICY STRING GOES HERE]” … }
有關CSP語法的完整詳細信息,請參閱內容安全策略規范以及有關HTML5Rocks的“內容安全策略簡介”一文。
沒有定義manifest_version軟件包沒有默認的內容安全策略。 那些選擇manifest_version 2,具有默認內容安全策略:
script-src’self’; object-src’self’
此策略通過三種方式限制擴展和應用程序來增加安全性:
(1)評估和相關功能被禁用
以下代碼不起作用:
警報(的eval( “foo.bar.baz”));
window.setTimeout(“alert(’hi’)”,10); window.setInterval(“alert(’hi’)”,10); new Function(“return foo.bar.baz”);
評估這樣的JavaScript字符串是一個常見的XSS攻擊向量。 相反,你應該編寫如下代碼:
alert(foo && foo.bar && foo.bar.baz); window.setTimeout(function(){alert(’hi’);},10); window.setInterval(function(){alert(’hi’);},10); function(){return foo && foo.bar && foo.bar.baz};
(2)內聯JavaScript不會被執行
內聯JavaScript不會被執行。 此限制禁止內嵌塊和內聯事件處理程序(例如 )。
第一個限制通過使您不小心執行惡意第三方提供的腳本來消除大量的跨站點腳本攻擊。 但是,它需要您將代碼寫入內容與行為之間的干凈分離(您當然應該做到這一點)對嗎? 一個例子可能使這更清楚。 您可能會嘗試編寫一個瀏覽器操作的彈出窗口作為單個popup.html包含:
<!doctype html> My Awesome Popup! function awesome(){ //做某事真棒! } function totalAwesome(){ //做某事真棒! } 函數clickHandler(element){ setTimeout( “awesome();getherAwesome()” ,1000); } function main(){ //初始化工作在這里。 } </ SCRIPT>
點擊awesomeness!
(1)內聯腳本
直到Chrome 45,沒有放寬對執行內聯JavaScript的限制的機制。 特別是,設置包含’unsafe-inline’的腳本策略將不起作用。
從Chrome 46起,可以通過在策略中指定源代碼的base64編碼哈希來將內聯腳本列入白名單。 該散列必須以使用的散列算法(sha256,sha384或sha512)為前綴。
以上是“Html5中內容安全策略CSP的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。