首頁  >  文章  >  web前端  >  js同源策略是什麼

js同源策略是什麼

anonymity
anonymity原創
2019-05-29 15:16:094885瀏覽

對於任何基於WEB的應用,最重要的就是安全性.JS中有各種安全檢查以防止惡意腳本攻擊你的機器,其中一些特定的安全手段在各種瀏覽器中都有採用.如:Mozilla有個完全獨特的完全模型,涉及到了簽署腳本和加強特權.我們要知道哪些安全手段是所有瀏覽器通用的,哪些是特定瀏覽器的.這樣就能創建更安全的JS腳本.

 js同源策略是什麼

同源策略;

JS只能與同一個網域中的頁面進行通訊.如:在http:// domain:port/app1/page.html;上的腳本不能和http://domain:port/app3/page.html;的瀏覽器視窗或iframe 進行互動.不能存取它的cookie,接收它的HTTP回應等(但它可以向任何其他來源發送HTTP請求);AJAX 和webservice 也受此策略管束.這種手段就叫同源策略;

#兩個腳本被認為是同源的條件是:

協定相同(例如都是http://)

埠相同(通常都是80)

#網域相同

如果這三個條件中有任何一條不滿足,就不允許兩個腳本進行交互.如:www.mydomain.com上的腳本不能訪問video.mydomain.com上的頁面,因為兩者的域名不同,雖然後者是前者的子域.同樣,它也不能訪問www.mydomain.com:8080上的頁面,因為端口不同,也不能訪問about:blank 因為協議不同(後者不是http://)

同源策略帶來的影響:

它影響了與BOM,DOM間的交互.如:不可以訪問不同來源的任何頁面的document對象,也就是說不能訪問其中任何DOM結構.如:

頁面上有兩個iframe 分別引用了不同來源;

alert(frames[1].location.href);

alert(frames[ 1].document.location.href);//失敗

window 和document 都有一個location 物件的屬性.如果在與框架頁不同來源的頁面中執行這兩行程式碼,第二行會報錯.

以上是js同源策略是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn