国产精品香蕉在线观看网,亚洲欧美精品综合在线观看,亚洲不卡av一区二区无码不卡,亚洲日本精品国产第一区二区

移動安全 安全管理 應(yīng)用案例 網(wǎng)絡(luò)威脅 系統(tǒng)安全應(yīng)用安全 數(shù)據(jù)安全 云安全
當(dāng)前位置: 主頁 > 信息安全 > 應(yīng)用安全 >

瀏覽器安然策略說以內(nèi)容安然策略CSP(二)

時間:2014-04-21 11:27來源:TuZhiJiaMi企業(yè)信息安全專家 點擊:
七 CSP闡發(fā)陳述 對網(wǎng)站治理員來講CSP的一個強大年夜功能是它可以產(chǎn)生試圖報復(fù)打擊你網(wǎng)站的闡發(fā)陳述。你可以用report-uri指令使瀏覽器發(fā)送HTTP POST要求把報復(fù)打擊陳述以JSON格局傳送到你指定的
Tags應(yīng)用安全(1006)安全策略(98)CSP(4)瀏覽器安全(8)  

  七 CSP闡發(fā)陳述

  對網(wǎng)站治理員來講CSP的一個強大年夜功能是它可以產(chǎn)生試圖報復(fù)打擊你網(wǎng)站的闡發(fā)陳述。你可以用report-uri指令使瀏覽器發(fā)送HTTP POST要求把報復(fù)打擊陳述以JSON格局傳送到你指定的地址。接下來給大年夜家介紹你的站點若何建設(shè)來領(lǐng)受報復(fù)打擊陳述。

  1. 啟用陳述

  默許環(huán)境下,背規(guī)陳述不會發(fā)送。為了能利用背規(guī)陳述,你必需利用report-uri指令,并起碼供給一個領(lǐng)受地址。

  Content-Security-Policy: default-src self; report-uri

  http://reportcollector.example.com/collector.cgi

  假定想讓瀏覽器只報告請示陳述,不禁止任何內(nèi)容,可以改用Content-Security-Policy-Report-Only頭。

  2.背規(guī)陳述語法

  該陳述JSON對象包含以下數(shù)據(jù):

  blocked-uri:被禁止的背規(guī)資本

  document-uri:反對背規(guī)行動產(chǎn)生的頁面

  original-policy:Content-Security-Policy頭策略的所有內(nèi)容

  referrer:頁面的referrer

  status-code:HTTP響應(yīng)狀況

  violated-directive:背規(guī)的指令

  3.背規(guī)陳述例子

  http://example.com/signup.html 中CSP 劃定只能加載cdn.example.com的CSS樣式。

  Content-Security-Policy: default-src 'none'; style-src

  cdn.example.com; report-uri /test/csp-report.php

  signup.html中的代碼近似與如許:

  ... Content ...

  你能從上面的代碼找犯弊端嗎?策略是只承諾加載cdn.example.com中的CSS樣式。但signup.html試圖加載本身域的style.css樣式。如許背反了策略,瀏覽器會向

  http://example.com/test/csp-report.php 發(fā)送POST要求提交陳述,發(fā)送格局為JSON格局。

  {

  "csp-report": {

  "document-uri": "http://example.com/signup.html",

  "referrer": "",

  "blocked-uri": "http://example.com/css/style.css",

  "violated-directive": "style-src cdn.example.com",

  "original-policy": "default-src 'none'; style-src cdn.example.com; report-uri /_/csp-reports",

  }

  }

  你從上面可以看到blocked-uri給出了具體的阻斷地址http://example.com/css/style.css,但也其實不是每次都是如許。好比試圖從http://anothercdn.example.com/stylesheet.css 加載CSS樣式時,瀏覽器將不會傳送完全的路徑,只會給出http://anothercdn.example.com/這個地址。如許做是為了不泄漏跨域的敏感信息。

  辦事端csp-report.php代碼可以如許寫:

  $file = fopen('csp-report.txt', 'a');

  $json = file_get_contents('php://input');

  $csp = json_decode($json, true);

  foreach ($csp['csp-report'] as $key => $val) {

  fwrite($file, $key . ': ' . $val . "

  ");

  }

  fwrite($file, 'End of report.' . "

  ");

  fclose($file);

  ?>

  八 CSP的利用率統(tǒng)計

  CSP的全球范圍利用率很是低,并且增加的也很是遲緩。按照Veracode在2013年11月給出的陳述指出,全球前1000000網(wǎng)站中獨一269個網(wǎng)站利用了W3C規(guī)范的CSP策略頭Content-Security-Policy。584個網(wǎng)站在利用X-Content-Security-Policy策略頭和487個網(wǎng)站在利用X-Webkit-CSP策略頭,這兩個和談頭已被燒毀,但還沒有被禁用。

  而利用Content-Security-Policy-Report-Only進行伶仃領(lǐng)受報復(fù)打擊陳述的網(wǎng)站只有24個。而統(tǒng)計中也指出,發(fā)現(xiàn)大年夜量網(wǎng)站利用unsafe-inline這個指令,闡發(fā)其啟事多是因為開辟人員很難在頁面中完全消弭內(nèi)聯(lián)腳本,這很讓人掉看,所有只能要求擬定的CSP策略加倍嚴(yán)謹。

  瀏覽器安然策略說以內(nèi)容安然策略CSPhttp://blog.veracode.com/2013/11/security-headers-on-the-top-1000000-websites-november-2013-report/

  對國內(nèi)網(wǎng)站利用CSP的環(huán)境,筆者拜托ZoomEye對此進行了統(tǒng)計。2014年2月發(fā)來的統(tǒng)計成果在很是不樂不雅。按照ZoomEye的統(tǒng)計:國內(nèi)排名前7000的域名沒有益用CSP,國內(nèi)1千萬的域名(含子域名)中發(fā)現(xiàn)7個利用了CSP策略,此中還有3個網(wǎng)站CSP語法利用弊端。7個網(wǎng)站中3個網(wǎng)站是知乎,知乎網(wǎng)站值得表揚。

  列表以下:

  www.zhihu.com

  www.zhi.hu

  zhimg.com

  www.applysquare.com

  www.pipapai.com CSP語法弊端

  www.icyprus.cn CSP語法弊端

  www.uyitec.cn CSP語法弊端

  在網(wǎng)站安然防御方面,我們還要有很長的路要走。當(dāng)然CSP安然策略頭只是網(wǎng)站安然整體防御中的一小部門,但合理的操縱仍是可以起到很好的防護感化。但是在我們闡發(fā)的百萬網(wǎng)站中,CSP的利用率是極其的低,從這一點來講CSP在國內(nèi)就應(yīng)當(dāng)遍及的給網(wǎng)站治理員進行科普。

  九 CSP Bypass

  一個安然策略從出世開端將會時不時的有一個叫“Bypass”的小火伴跟從擺布。而從辯證角度來講,多加載一種安然策略,就多了一種Bypass的維度。一旦Bypass呈現(xiàn),就意味著將有一種設(shè)計者沒有考慮到的編制或技能,將粉碎策略的原有法則。

  CSP也亦是如斯,在一次次被繞過然后在一次次修復(fù)過程中,來完美本身的語法和指令。

  1.bypass AngularJS系列繞過

  AngularJS是為數(shù)不多的撐持CSP模式的MVC框架,在夙起版本中可以機關(guān)多種編制繞過CSP防御。

  CSP Bypasses with AngularJS 1.0.8 and 1.1.5

  例如:XSS via Click & Hover (ng-click & ng-mou搜刮引擎優(yōu)化ver attribute)

  header('X-Content-Security-Policy: default-src 'self' ajax.谷歌apis.com');

  header('Content-Security-Policy: default-src 'self' ajax.谷歌apis.com');

  header('X-Webkit-CSP: default-src 'self' ajax.谷歌apis.com');

  header('Set-Cookie: abc=123');

  ?>

  Click me

  Hover me

  更多的可以看https://code.谷歌.com/p/mustache-security/wiki/AngularJS

  2.策略優(yōu)先級繞過

  在瀏覽器的呵護策略中,有良多是反復(fù)的。好比A策略可以抵抗C報復(fù)打擊,B策略也能夠抵抗C報復(fù)打擊。此處的抵抗可所以阻斷也能夠是放行。因而當(dāng)AB同時感化于C報復(fù)打擊上時,Bypass便可能產(chǎn)生。

  (1)Iframe sandbox 和 CSP sandbox

  當(dāng)iframe sandbox承諾履行JS,而CSP不承諾履行JS,標(biāo)題問題就產(chǎn)生了,CSP就被bypass了。

  //evil.com

------分隔線----------------------------

推薦內(nèi)容