1. 程式人生 > >第二百七十四節,同源策略和跨域訪問

第二百七十四節,同源策略和跨域訪問

ron 使用 outlook 是否 secure .com 相對 100% wid

同源策略和跨域訪問

什麽是同源策略

盡管瀏覽器的安全措施多種多樣,但是要想黑掉一個Web應用,只要在瀏覽器的多種安全措施中找到某種措施的一個漏洞或者繞過一種安全措施的方法即可。瀏覽器的各種保安措施之間都試圖保持相互獨立,但是攻擊者只要能在出錯的地方註入少許JavaScript,所有安全控制幾乎全部瓦解——最後還起作用的就是最弱的安全防線:同源策略。同源策略管轄著所有保安措施,然而,由於瀏覽器及其插件,諸如Acrobat Reader、Flash 和Outlook Express漏洞頻出,致使同源策略也頻頻告破。 既然web應用的最弱安全防線是同源策略,那什麽是同源策略呢?如何去攻破同源策略呢?如何黑web應用呢?
同源策略,它是由Netscape提出的一個著名的安全策略。所有支持javascript的網站都會使用同源策略來保護自己的web應用。 同源策略又名同域策略,通俗易懂的來說,同源就是(主機名+協議+端口號【若存在】)三者相同。也就是說javascript只可以操作自己域下的東西,不能操作其他域下的東西。比如百度下javascript是不可操作谷歌下的頁面。
那為什麽要同源策略呢? 如上述所述,同源策略,javascript操作自己web應用,不得操作別人web應用。既然如此,也就是別人無法操作自己web應用,是保證web安全的一種方式。 假設別人可以操作自己web應用,試想是否很可怕?假如你打開網銀頁面,蹦出一個惡意廣告,當你關閉廣告,若沒有同源策略,是不是代表惡意廣告會操作你網銀頁面,通過javascript竊取你網銀的信息。
那了解了同源策略,下面舉幾個url判斷是否在同一個域中。 假設url地址:http://store.company.com/dir/page.html檢測下面是否他的同源地址。 其url的協議:http;主機名:store.company.com 端口號沒有或者其相應服務器的默認值


URL 結果 原因
http://store.company.com/dir2/other.html
http://store.company.com/dir/inner/another.html
https://store.company.com/secure.html 不是 協議不相同
http://store.company.com:81/dir/etc.html 不是 端口號不相同
http://news.company.com/dir/other.html 不是 主機名不相同

任何事物都是相對的,既然存在同源策略,肯定會存在訪問不同源的情況。那該怎麽辦呢? 上文也提到,同源即同域,不同源,即跨域。 那我若想跨域,怎麽辦呢?

第二百七十四節,同源策略和跨域訪問