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