首頁  >  文章  >  web前端  >  js同源策略:操作web內容的一條完整安全限制

js同源策略:操作web內容的一條完整安全限制

php是最好的语言
php是最好的语言原創
2018-08-03 10:33:112388瀏覽

同源策略

同源是js對能操作那些web內容的一條完整的安全限制。當web頁面打開其他瀏覽器窗口,或使用iframe的時候,就會發揮作用。
即,腳本只能讀取和所屬文件來源相同的視窗和文件的屬性。
文件的來源包含協議,主機,載入文件的url連接埠。從不同web伺服器載入的文件有不同的來源,同過同一主機的不同連接埠所載入的文件也有不同的來源。使用http和https的也是不同的來源,因為協議不同。
即,協議,主機, 載入文件的url端口,完全和文件的相同,才能允許腳本讀取文件內容。
但是對於腳本本身的來源沒有任何的關係。
舉例
腳本a是包含在一個來自主機b文檔bb的,也就是腳本a可以存取文件bb的所有的內容。
腳本a又開啟了一個來自於主機c的cc文檔,由於來源不同,腳本a不能存取文檔cc的內容。但是如果腳本a又打開一個來自主機b的文檔bbb,這時,腳本a可以訪問文檔bbb(此時是在兩個不同的窗口下,也可以實現訪問)
如果腳本打開一個窗口,腳本也可以關閉,但不能以任何方式查看視窗內部。

不嚴格的同源策略

本機使用web server for chrome 啟動服務。修改host文件,解析home.abc.com 以及abc.com到這兩個網域
訪問,http://home.abc.com:8887/ 以及http://abc.com:8887/都來自同一台主機127.0.0.1
這樣就完成了一個最簡單的本機伺服器的搭建

#設定document.domain

> document.domain
"home.abc.com"

只允許請求home.abc.com來源的網站。
設定

> document.domain = "abc.com";
"abc.com"

這樣就設定了一個同源,對於

*.abc.com

的請求,當做全部同源。

設定相同的document.domain

設定相同的document.domain,如果兩個值相同,則腳本可以互相存取。不會受到同源的約束。

跨域資源共享

使用Origin擴充http,確保資源共享

#https://developer.mozilla.org...

#明確的列出所有來源。根據Origin的值,列出來源,避免再次跨來源

跨文件訊息

使用postMessage()方法,非同步傳遞訊息事件

腳本化外掛程式和ActiveX控制項

在web瀏覽器中,js被用作許多軟體和外掛程式的腳本引擎。
ActiveX 網路銀行用的多,╮(╯▽╰)╭
很老很老的技術了。 。 3721。 (⊙o⊙)

js不能做什麼

客戶端js沒有權限寫入刪除客戶電腦上的任意檔案或列出任意目錄。即js程式不能刪除資料或植入病毒。
客戶端的js沒有任何通用的網路能力,客戶端js程式可以對http協定編程,並且有套接字的api,用於指定伺服器通信,但是都不能進行更大範圍,更廣的網路進行訪問。

相關文章:

有關對同源策略和csrf安全策略的知識點講解

js同源策略詳解

相關影片:

JavaScript基礎精講影片教學

以上是js同源策略:操作web內容的一條完整安全限制的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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