按部就班Python3(十一) --5-- 同源策略

1、什麼是同源策略javascript

    同源策略(Same origin policy)是一種約定,它是瀏覽器最核心也最基本的安全功能。它是由Netscape提出的一個著名的安全策略,如今全部的可支持javascript的瀏覽器都會使用這個策略。能夠說Web是構建在同源策略基礎之上的,瀏覽器只是針對同源策略的一種實現。css

    所謂同源是指,域名,協議,端口相同。(URL由協議、域名、端口和路徑組成,若是兩個URL的協議、域名和端口相同,則表示他們同源。)html

2、爲何須要同源策略  前端

    假設如今沒有同源策略,會發生什麼事情呢?你們知道,JavaScript能夠作不少東西,好比:讀取/修改網頁中某個值。恩,你如今打開了瀏覽器,在一 個tab窗口中打開了銀行網站,在另一個tab窗口中打開了一個惡意網站,而那個惡意網站掛了一個的專門修改銀行信息的JavaScript,當你訪問 這個惡意網站而且執行它JavaScript時,你的銀行頁面就會被這個JavaScript修改,後果會很是嚴重!而同源策略就爲了防止這種事情發生.  java

      好比說,瀏覽器的兩個tab頁中分別打開了http://www.baidu.com/index.html和http: //www.google.com/index.html,其中,JavaScript1和JavaScript3是屬於百度的腳本,而 JavaScript2是屬於谷歌的腳本,當瀏覽器的tab1要運行一個腳本時,便會進行同源檢查,只有和www.baidu.com同源的腳本才能被執行。因此,tab1只能執行JavaScript1和JavaScript3腳本,而JavaScript2不能 執行,從而防止其餘網頁對本網頁的非法篡改。
    若是Web世界沒有同源策略,當你登陸京東帳號並打開另外一個站點時,這個站點上的JavaScript能夠跨域讀取你的京東帳號數據,這樣整個Web世界就無隱私可言了。
    可是,安全性和方便性是成反比的,十位數的密碼提升了安全性,可是不方便記憶。一樣,同源策略提高了Web前端的安全性,但犧牲了Web拓展上的靈活性。設想若把html、js、css、flash,image 等文件所有佈置在一臺服務器上,小網站這樣湊活還行,大中網站若是這樣作服務器根本受不了的,可用性都不能保證的話,安全性還算什麼? 因此,現代瀏覽器在安全性和可用性之間選擇了一個平衡點。在遵循同源策略的基礎上,選擇性地爲同源策略「開放了後門」。 例如img、 script、 style、link、iframe等標籤,都容許垮域引用資源,嚴格說這都是不符合同源要求的。然而,你也只能是引用這些資源而已,並不能讀取這些資源的內容。所以瀏覽器下降了那麼一點點安全性,卻大大提高網站佈置的靈活性。
    因此儘管瀏覽器遵循同源策略,你仍能夠發現你的訪問過的網站、買過的東西、搜索過的字串、甚至你的興趣愛好,均可以被遠端分析出來。咱們姑且認爲這些大數據分析者是有節操的,不會隨意泄露這些數據。若是瀏覽器不遵循同源策略,那麼狀況更糟:網站站長、廣告聯盟、流量統計商、xss【注1】 黑客,隨便哪一個人都將無障礙的獲取私密信息,例如各個網站的Cookie、email的郵件內容、OA頁面的內容、QQ空間裏設置爲隱私的照片等,不止這些,據說過CSRF【注2】嗎,經過CSRF還可能用你的郵箱羣發發郵件、在OA裏面填上你曠工一天、在第三方支付平臺裏自由轉帳、用你的帳號在知乎上胡亂發言,等等。跨域

3、跨域漏洞

    舉個例子UC瀏覽器跨本地域XSS可盜取任意域Cookie ,一段js代碼原本是普通http域的權限,但是用過下載頁面的一個xss,從而具備了file域的權限,而file域對權限限制也不嚴格,容許從file域跨到任意一個http域權限去執行js代碼,通過了兩次跨域操做,最終實現了普通http域向任意一個域注射js的目的,同源策略被徹底破壞。


【注1】xss 跨站腳本攻擊(Cross Site Scripting),爲不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫爲XSS。惡意攻擊者往Web頁面裏插入惡意Script代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的Script代碼會被執行,從而達到惡意攻擊用戶的目的。
【注2】CSRF(Cross-site request forgery跨站請求僞造,也被稱爲「One Click Attack」或者Session Riding,一般縮寫爲CSRF或者XSRF,是一種對網站的惡意利用。儘管聽起來像跨站腳本(XSS),但它與XSS很是不一樣,而且攻擊方式幾乎相左。XSS利用站點內的信任用戶,而CSRF則經過假裝來自受信任用戶的請求來利用受信任的網站。與XSS攻擊相比,CSRF攻擊每每不大流行(所以對其進行防範的資源也至關稀少)和難以防範,因此被認爲比XSS更具危險性。 瀏覽器

 
 
 
 
 
 
 
 
 
 
 
 

                                                                                                                                                        --觀千劍然後識器,操千曲然後曉聲安全

 

相關文章
相關標籤/搜索