婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > HTML5安全介紹之內容安全策略(CSP)簡介

HTML5安全介紹之內容安全策略(CSP)簡介

熱門標簽:平頂山電子地圖標注怎么修改 電銷機器人視頻 地圖標注自己去過的地方 高德地圖標注錯誤怎么修改 搜狗星級酒店地圖標注 江蘇高頻外呼系統線路 會聲會影怎樣做地圖標注效果 洛陽市伊川縣地圖標注中心官網 標準智能外呼系統
 萬維網的安全策略植根于同源策略。例如www.jb51.net的代碼只能訪問www.jb51.net的數據,而沒有訪問http://www.baidu.com的權限。每個來源都與網絡的其它部分分隔開,為開發人員構建了一個安全的沙箱。理論上這是完美的,但是現在攻擊者已經找到了聰明的方式來破壞這個系統。
        這就是XSS跨站腳本攻擊,通過虛假內容和誘騙點擊來繞過同源策略。這是一個很大的問題,如果攻擊者成功注入代碼,有相當多的用戶數據會被泄漏。
        現在我們介紹一個全新的、有效的安全防御策略來減輕這種風險,這就是內容安全策略(ContentSecurity Policy,CSP)。
來源白名單
        XSS攻擊的核心是利用了瀏覽器無法區分腳本是被第三方注入的,還是真的是你應用程序的一部分。例如Google +1按鈕會從https://apis.google.com/js/plusone.js加載并執行代碼,但是我們不能指望從瀏覽器上的圖片就能判斷出代碼是真的來自apis.google.com,還是來自apis.evil.example.com。瀏覽器下載并執行任意代碼的頁面請求,而不論其來源。
        CSP定義了Content-Security-PolicyHTTP頭來允許你創建一個可信來源的白名單,使得瀏覽器只執行和渲染來自這些來源的資源,而不是盲目信任服務器提供的所有內容。即使攻擊者可以找到漏洞來注入腳本,但是因為來源不包含在白名單里,因此將不會被執行。
        以上面Google +1按鈕為例,因為我們相信apis.google.com提供有效的代碼,以及我們自己,所以可以定義一個策略,允許瀏覽器只會執行下面兩個來源之一的腳本。
        Content-Security-Policy:script-src 'self' https://apis.google.com
        是不是很簡單?script-src可以為指定頁面控制腳本相關權限。這樣瀏覽器只會下載和執行來自http://apis.google.com和本頁自身的腳本。
        一旦我們定義了這個策略,瀏覽器會在檢測到注入代碼時拋出一個錯誤(請注意是什么瀏覽器)。
內容安全策略適用于所有常用資源
        雖然腳本資源是最明顯的安全隱患,但是CSP還提供了一套豐富的指令集,允許頁面控制加載各種類型的資源,例如如下的類型:
content-src:限制連接的類型(例如XHR、WebSockets和EventSource)
font-src:控制網絡字體的來源。例如可以通過font-src https://themes.googleusercontent.com來使用Google的網絡字體。
frame-src:列出了可以嵌入的frame的來源。例如frame-src https://youtube.com只允許嵌入YouTube的視頻。。
img-src:定義了可加載圖像的來源。
media-src:限制視頻和音頻的來源。
object-src:限制Flash和其他插件的來源。
style-src:類似于Script-src,只是作用于css文件。
        默認情況下,所有的設置都是打開的,不做任何限制。你可以以分號分隔多個指令,但是類似于script-src https://host1.com;script-src https://host2.com的形式,第二個指令將會被忽略。正確的寫法是script-src https://host1.com https://host2.com。
        例如,你有一個應用需要從內容分發網絡(CDN,例如https://cdn.example.net)加載所有的資源,并且知道不需要任何frame和插件的內容,你的策略可能會像下面這樣:
Content-Security-Policy:default-src https://cdn.example.net; frame-src 'none'; object-src 'none'
細節
        我在例子里使用的HTTP頭是Content-Security-Policy,但是現代瀏覽器已經通過前綴來提供了支持:Firefox使用x-Content-Security-Policy,WebKit使用X-WebKit-CSP。未來會逐步過渡到統一的標準。
        策略可以根據每個不同的頁面而設定,這提供了很大的靈活度。因為你的站點可能有的頁面有Google +1的按鈕,而有的則沒有。
        每個指令的來源列表可以相當靈活,你可以指定模式(data:, https:),或者指定主機名在一個范圍(example.com,它匹配主機上的任意來源、任意模式和任意端口),或者指定一個完整的URI(https://example.com:443,特指https協議,example.com域名,443端口)。
        你在來源列表中還可以使用四個關鍵字:
“none”:你可能期望不匹配任何內容
“self”:與當前來源相同,但不包含子域
“unsafe-inline”:允許內聯Javascript和CSS
“unsafe-eval”:允許文本到JS的機制例如eval
        請注意,這些關鍵詞需要加引號。
沙箱
        這里還有另外一個值得討論的指令:sandbox。和其他指令有些不一致,它主要是控制頁面上采取的行為,而不是頁面能夠加載的資源。如果設置了這個屬性,頁面就表現為一個設置了sandbox屬性的frame一樣。這對頁面有很大范圍的影響,例如防止表單提交等。這有點超出了本文的范圍,但是你可以在HTML5規范的“沙箱標志設置”章節找到更多信息。
有害的內聯代碼
        CSP基于來源白名單,但是它不能解決XSS攻擊的最大來源:內聯腳本注入。如果攻擊者可以注入包含有害代碼的script標簽(<script>sendMyDataToEvilDotCom();</script>),瀏覽器并沒有好的機制來區分這個標簽。CSP只能通過完全禁止內聯腳本來解決這個問題。
        這個禁止項不僅包括腳本中嵌入的script標簽,還包括內聯事件處理程序和javascrpt:這種URL。你需要把script標簽的內容放到一個外部文件里,并且用適當的addEventListener的方式替換javascript:和<a…onclick=”[JAVASCRIPT]”>。例如,你可能會把下面的表單:
<script>
  function doAmazingThings() {
    alert('YOU AM AMAZING!');
  }
</script>
<button onclick='doAmazingThings();'>Am I amazing?</button>
        重寫為下面的形式:
<!-- amazing.html -->
<script src='amazing.js'></script>
<button id='amazing'>Am I amazing?</button>
// amazing.js
function doAmazingThings() {
  alert('YOU AM AMAZING!');
}
document.addEventListener('DOMContentReady', function () {
  document.getElementById('amazing')
          .addEventListener('click', doAmazingThings);
});
        無論是否使用CSP,以上的代碼其實有更大的優點。內聯JavaScript完全混合了結構和行為,你不應該這么做。另外外聯資源更容易進行瀏覽器緩存,開發者更容易理解,并且便于編譯和壓縮。如果采用外聯代碼,你會寫出更好的代碼。
        內聯樣式需要以同樣的方式進行處理,無論是style屬性還是style標簽都需要提取到外部樣式表中。這樣可以防止各式各樣神奇的數據泄漏方式。
        如果你必須要有內聯腳本和樣式,可以為script-src or style-src屬性設定'unsafe-inline值。但是不要這樣做,禁止內聯腳本是CSP提供的最大安全保證,同時禁止內聯樣式可以讓你的應用變得更加安全和健壯。這是一個權衡,但是非常值得。
Eval
        即便攻擊者不能直接注入腳本,他可能會誘使你的應用把插入的文本轉換為可執行腳本并且自我執行。eval() , newFunction() , setTimeout([string], ...) 和setInterval([string], ...) 都可能成為這種危險的載體。CSP針對這種風險的策略是,完全阻止這些載體。
        這對你構建應用的方式有一些影響:
        通過內置的JSON.parse解析JSON,而不依靠eval。IE8以后的瀏覽器都支持本地JSON操作,這是完全安全的。
        通過內聯函數代替字符串來重寫你setTimeout和setInterval的調用方式。例如:  
setTimeout("document.querySelector('a').style.display = 'none';", 10);
        可以重寫為:
setTimeout(function () { document.querySelector('a').style.display = 'none'; }, 10);
        避免運行時的內聯模版:許多模版庫都使用new Function()以加速模版的生成。這對動態程序來說非常棒,但是對惡意文本來說存在風險。
報告
        CSP可以在服務器端阻止不可信的資源對用戶來說非常有用,但是對于獲取各種發送到服務器的通知來說對我們卻非常有用,這樣我們就能識別和修復任何惡意腳本注入。為此你可以通過report-uri指令指示瀏覽器發送JSON格式的攔截報告到某個地址。
Content-Security-Policy: default-src 'self'; ...; report-uri /my_amazing_csp_report_parser;
        報告看起來會像下面這樣:
{
  "csp-report": {
    "document-uri": "http://example.org/page.html",
    "referrer": "http://evil.example.com/",
    "blocked-uri": "http://evil.example.com/evil.js",
    "violated-directive": "script-src 'self' https://apis.google.com",
    "original-policy": "script-src 'self' https://apis.google.com; report-uri http://example.org/my_amazing_csp_report_parser"
  }
}
        其中包含的信息會幫助你識別攔截的情況,包括攔截發生的頁面(document-uri),頁面的referrer,違反頁面策略的資源(blocked-uri),所違反的指令(violated-directive)以及頁面所有的內容安全策略(original-policy)。
現實用法
        CSP現在在Chrome 16+和Firefox 4+的瀏覽器上可用,并且它在IE10上預計會獲得有限的支持。Safari目前還不支持,但是WebKit每晚構建版已經可用,所以預計Safari將會在下面的迭代中提供支持。
        下面讓我們看一些常用的用例:
        實際案例1:社會化媒體widget
Google +1 button包括來自https://apis.google.com的腳本,以及嵌入自https://plusone.google.com的iframe。你的策略需要包含這些源來使用Google +1的按鈕。最簡單的策略是script-src https://apis.google.com; frame-src https://plusone.google.com。你還需要確保Google提供的JS片段存放在外部的JS文件里。
Facebook的Like按鈕有許多種實現方案。我建議你堅持使用iframe版本,因為它可以和你站點的其它部分保持很好的隔離。這需要使用frame-src https://facebook.com指令。請注意,默認情況下,Facebook提供的iframe代碼使用的是相對路徑//facebook.com,請把這段代碼修改為https://facebook.com,HTTP你沒有必要可以不使用。
Twitter的Tweet按鈕依賴于script和frame,都來自于https://platform.twitter.com(Twitter默認提供的是相對URL,請在復制的時候編輯代碼來指定為HTTPS方式)。
        其它的平臺有相似的情況,可以類似的解決。我建議把default-src設置為none,然后查看控制臺來檢查你需要使用哪些資源來確保widget正常工作。
        使用多個widget非常簡單:只需要合并所有的策略指令,記住把同一指令的設置都放在一起。如果你想使用上面這三個widget,策略看起來會像下面這樣:
script-src https://apis.google.com https://platform.twitter.com; frame-src https://plusone.google.com https://facebook.com https://platform.twitter.com
        實際案例2:防御
        假設你訪問一個銀行網站,并且希望確保只加載你所需的資源。在這種情況下,開始設置一個默認的權限來阻止所有的內容(default-src ‘none’),并且從這從頭構建策略。
        比如,銀行網站需要從來自https://cdn.mybank.net的CDN加載圖像、樣式和腳本,并且通過XHR連接到https://api.mybank.com/來拉取各種數據,還需要使用frame,但是frame都來自非第三方的本地頁面。網站上沒有Flash、字體和其他內容。這種情況下我們可以發送最嚴格的CSP頭是:
Content-Security-Policy: default-src 'none'; script-src https://cdn.mybank.net; style-src https://cdn.mybank.net; img-src https://cdn.mybank.net; connect-src https://api.mybank.com; frame-src 'self'
        實際案例3:只用SSL
        一個婚戒論壇管理員希望所有的資源都通過安全的方式進行加載,但是不想真的編寫太多代碼;重寫大量第三方論壇內聯腳本和樣式的代碼超出了他的能力。所以以下的策略將會是非常有用的:
Content-Security-Policy: default-src https:; script-src https: 'unsafe-inline'; style-src https: 'unsafe-inline'
        盡管default-src指定了https,腳本和樣式不會自動繼承。每個指令將會完全覆蓋默認資源類型。
未來
        W3C的Web應用安全工作組正在制定內容安全策略規范的細節,1.0版本將要進入最后修訂階段,它和本文描述的內容已經非常接近。而public-webappsec@郵件組正在討論1.1版本,瀏覽器廠商也在努力鞏固和改進CSP的實現。
        CSP 1.1在畫板上有一些有趣的地方,值得單獨列出來:
        通過meta標簽添加策略:CSP的首選設置方式是HTTP頭,它非常有用,但是通過標記或者腳本設置會更加直接,不過目前還未最終確定。WebKit已經實現了通過meta元素進行權限設置的特性,所以你現在可以在Chrome下嘗試如下的設置:在文檔頭添加<metahttp-equiv="X-WebKit-CSP" content="[POLICY GOES HERE]">。
        你甚至可以在運行時通過腳本來添加策略。
        DOM API:如果CSP的下一個迭代添加了這個特性,你可以通過Javascript來查詢頁面當前的安全策略,并根據不同的情況進行調整。例如在eval()是否可用的情況下,你的代碼實現可能會有些許不同。這對JS框架的作者來說非常有用;并且API規范目前還非常不確定,你可以在規范草案的腳本接口章節找到最新的迭代版本。
        新的指令:許多新指令正在討論中,包括script-nonce:只有明確指定的腳本元素才能使用內聯腳本;plugin-types:這將限制插件的類型;form-action:允許form只能提交到特定的來源。
        如果你對這些未來特性的討論感興趣,可以閱讀郵件列表的歸檔或者加入郵件列表。
        本文譯自:http://www.html5rocks.com/en/tutorials/security/content-security-policy/
摘自:蔣宇捷的博客

標簽:阿克蘇 果洛 鄂爾多斯 松原 蚌埠 常德 廣西 廣東

巨人網絡通訊聲明:本文標題《HTML5安全介紹之內容安全策略(CSP)簡介》,本文關鍵詞  HTML5,安全,介紹,之,內容,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5安全介紹之內容安全策略(CSP)簡介》相關的同類信息!
  • 本頁收集關于HTML5安全介紹之內容安全策略(CSP)簡介的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲精品日韩专区silk| 在线国产亚洲欧美| 久久成人免费电影| 99久久精品费精品国产一区二区| 国产一区二区中文字幕| 在线一区二区三区四区五区 | 久久亚洲影视婷婷| 亚洲成人自拍一区| 久久久久久久久久久黄色| 色狠狠av一区二区三区| 久久中文娱乐网| 麻豆国产一区二区| 欧美日韩1区2区| 亚洲免费av高清| 99精品一区二区| 国产精品网友自拍| 精品在线你懂的| 7777精品伊人久久久大香线蕉完整版 | 国产激情视频一区二区在线观看| 国产精品18久久久久久久网站| www久久久久| 国精品**一区二区三区在线蜜桃 | 欧美性大战久久久久久久| 国产精品第四页| 国产一区二区三区最好精华液| 欧美区视频在线观看| 亚洲欧美偷拍三级| 顶级嫩模精品视频在线看| 欧美一区二区三区免费| 成人高清视频免费观看| 欧美精品123区| 天天影视色香欲综合网老头| 欧美影院午夜播放| 亚洲国产精品天堂| 91精品欧美久久久久久动漫| 人人狠狠综合久久亚洲| 欧美www视频| 亚洲人成电影网站色mp4| 欧洲精品一区二区三区在线观看| 亚洲精品国产精品乱码不99 | 性做久久久久久久免费看| 欧美精选一区二区| 国产欧美日韩在线看| 高清国产午夜精品久久久久久| 国产日本一区二区| 欧美性猛交xxxxxx富婆| 免费在线一区观看| 欧美性受xxxx黑人xyx| 三级影片在线观看欧美日韩一区二区| 欧美一区二视频| 成人综合婷婷国产精品久久 | 日韩免费在线观看| 国产suv一区二区三区88区| 精品国产免费一区二区三区四区 | 成人av免费在线| 亚洲丝袜美腿综合| 欧美日韩国产高清一区二区 | 婷婷久久综合九色综合绿巨人| 欧美一级午夜免费电影| 亚洲国产一二三| 精品国产髙清在线看国产毛片| 国产成人精品一区二区三区网站观看| 国产精品久久久久久久久搜平片| 欧美日韩久久久| 国产精品亚洲视频| 日韩激情一区二区| 国产精品萝li| 欧美在线你懂的| 国产suv精品一区二区6| 日本视频一区二区| 亚洲欧美另类久久久精品| 欧美一区欧美二区| 在线中文字幕一区二区| 国产精品一区在线观看你懂的| 亚洲国产视频直播| 亚洲欧美一区二区三区极速播放| 欧美日韩精品一区二区天天拍小说| 欧美96一区二区免费视频| 国产人妖乱国产精品人妖| 欧美一区二区三区在线看| 色先锋aa成人| av一区二区不卡| 国产在线国偷精品产拍免费yy| 亚洲风情在线资源站| 亚洲欧洲美洲综合色网| 国产欧美日韩久久| 日韩视频一区二区| 91一区二区在线观看| 成人激情黄色小说| 国产一区二区三区久久久| 免费在线一区观看| 日韩精品成人一区二区三区| 亚洲成人资源在线| 日韩精品91亚洲二区在线观看 | 国产午夜精品福利| 精品动漫一区二区三区在线观看| 7777精品伊人久久久大香线蕉的| 国产精品青草综合久久久久99| 欧美日韩免费电影| 色婷婷av一区| 在线亚洲+欧美+日本专区| 久久一二三国产| 69堂国产成人免费视频| 欧美三级电影在线看| 欧美日韩中字一区| 欧美日韩国产综合一区二区| 高清成人免费视频| 99re在线精品| 欧美亚洲高清一区| 日韩三级在线免费观看| 精品日产卡一卡二卡麻豆| 久久久精品综合| 中文字幕制服丝袜一区二区三区| 欧美极品另类videosde| 精品成人a区在线观看| 久久精品人人爽人人爽| 一区在线中文字幕| 亚洲国产视频a| 蜜臀av一区二区在线免费观看| 国产在线精品一区二区夜色| 国产一区不卡精品| 高清在线不卡av| a在线欧美一区| 欧美亚洲国产一区二区三区va | 国产成人高清在线| 婷婷开心激情综合| 国产毛片精品一区| 色婷婷综合久久久久中文| 欧美日韩欧美一区二区| 精品日韩一区二区三区免费视频| 国产精品久久久久久户外露出| 亚洲综合免费观看高清完整版在线| 亚洲一区二区av电影| 成人免费毛片片v| 精品国产伦一区二区三区观看方式 | 午夜精品成人在线视频| 国产一级精品在线| 久久蜜桃香蕉精品一区二区三区| 日韩av电影免费观看高清完整版在线观看| 亚洲人成伊人成综合网小说| 国产真实乱偷精品视频免| 精品国产伦一区二区三区观看方式| 免费欧美在线视频| 久久久久久97三级| 成人av在线资源网| 亚洲天堂网中文字| 欧美亚一区二区| 全国精品久久少妇| 欧美videofree性高清杂交| 韩国女主播成人在线观看| 国产蜜臀av在线一区二区三区| 99久久久国产精品| 亚洲午夜免费电影| 日韩欧美久久久| www.激情成人| 亚洲一区免费在线观看| 日韩精品资源二区在线| 成人免费毛片嘿嘿连载视频| 夜夜嗨av一区二区三区四季av| 欧美日韩免费观看一区二区三区| 蜜桃一区二区三区四区| 国产精品黄色在线观看| 欧美亚洲精品一区| 国产乱色国产精品免费视频| 亚洲色图制服诱惑| 欧美一区二区三区精品| 欧美一级黄色录像| 国产 欧美在线| 五月天久久比比资源色| 欧美激情一区二区三区不卡| 在线观看国产一区二区| 久久丁香综合五月国产三级网站 | 精品久久国产老人久久综合| 岛国av在线一区| 亚洲va欧美va人人爽| 久久久久久一二三区| 欧美午夜片在线看| 国产91丝袜在线播放九色| 亚洲大片在线观看| 国产欧美综合在线观看第十页| 欧美日韩一二三| av网站一区二区三区| 久久精品国产精品亚洲精品| 亚洲另类色综合网站| 久久久国产一区二区三区四区小说 | 94色蜜桃网一区二区三区| 日本在线不卡视频| 亚洲日穴在线视频| 久久综合国产精品| 欧美男男青年gay1069videost | 成人app软件下载大全免费| 五月天婷婷综合| 一区二区高清视频在线观看| 国产片一区二区| 欧美成人福利视频| 欧美久久久久免费| 欧美日韩视频一区二区| 在线视频一区二区免费| 99久久免费视频.com| 东方aⅴ免费观看久久av|