跨域問題’、以及如何解決
(一)什麽是跨域?what?
①跨域:指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制【防止惡意的網站竊取數據】。
同源策略:
瀏覽器的同源策略,限制了來自不同源的"document"或腳本,對當前"document"讀取或設置某些屬性。 (白帽子講web安全[1])
從一個域上加載的腳本不允許訪問另外一個域的文檔屬性。
舉個例子:
比如一個惡意網站的頁面通過iframe嵌入了銀行的登錄頁面(二者不同源),如果沒有同源限制,惡意網頁上的javascript腳本就可以在用戶登錄銀行的時候獲取用戶名和密碼。
【同源:域名,協議,端口 均相同。
http://www.123.com/index.html 調用 http://www.123.com/server.php (非跨域)
http://www.123.com/index.html 調用 http://www.456.com/server.php (主域名不同:123/456,跨域)
http://abc.123.com/index.html 調用 http://def.123.com/server.php (子域名不同:abc/def,跨域)
http://www.123.com:8080/index.html 調用 http://www.123.com:8081/server.php (端口不同:8080/8081,跨域)
http://www.123.com/index.html 調用 https://www.123.com/server.php (協議不同:http/https,跨域)
請註意:localhost和127.0.0.1雖然都指向本機,但也屬於跨域。
(二)怎麽解決的?how?
跨域問題’、以及如何解決