同源策略是客戶端腳本(尤其是 Javascript)的重要的安全度量標準。其目的是防止某個文檔或腳本從多個不同源裝載。 ?這里的同源策略指的是:協議,域名,端口相同,同源策略是一種安全協議,指一段腳本只能讀取來自同一來源的窗口和文檔的屬性。 ?
?
為什么要有同源限制?
我們舉例說明:比如一個黑客程序,他利用 Iframe 把真正的銀行登錄頁面嵌到他的頁面上,當你使用真實的用戶名,密碼登錄時,他的頁面就可以通過 Javascript 讀取到你的表單中 input 中的內容,這樣用戶名,密碼就輕松到手了
工作中是怎么解決跨域的?
1.jsonp
1) JSONP原理
利用 `<script> `標簽沒有跨域限制的漏洞,網頁可以得到從其他來源動態產生的 JSON 數據。JSONP請求一定需要對方的服務器做支持才可以。
2.cors
CORS 需要瀏覽器和后端同時支持。瀏覽器會自動進行 CORS 通信,實現 CORS 通信的關鍵是后端。只要后端實現了 CORS,就實現了跨域。服務端設置 Access-Control-Allow-Origin 就可以開啟 CORS。
3.proxy代理 (適用于本地開發)
。。。(其他的方式 可自行去掘金上搜 9種跨域的方式)
?CORS支持所有類型的HTTP請求,是跨域HTTP請求的根本解決方案
?JSONP只支持GET請求,JSONP的優勢在于支持老式瀏覽器,以及可以向不支持CORS的網站請求數據。
?不管是Node中間件代理還是nginx反向代理,主要是通過同源策略對服務器不加限制。
?日常工作中,用得比較多的跨域方案是cors和nginx反向代理
- 介紹
- 原生JS
- 1.ES6的新特性
- 2.JS的數據類型
- 3.定義函數的方法
- 4.JS作用域的理解
- 5.閉包的理解
- 6.數組去重
- 7.原型及原型鏈
- 8.Object.create的作用
- 9.new的執行過程是怎么回事
- 10.call,apply,bind三者的區別
- 11.實現類的繼承
- 12.談談你對this指向的理解
- 13.DOM
- 14.JS的異步編程
- 15.正則
- http&ajax
- 1.TCP/IP的三次握手和四次揮手
- 2.http常用狀態碼(http-status-code):
- 3.從瀏覽器輸入URL按回車到頁面顯示都發生了什么?
- 4.HTTPS和HTTP的區別
- 5.瀏覽器緩存?
- 6.ajax四步
- 7.一般我們再攔截器中都會寫什么代碼?
- 8.get請求和post請求有什么區別?什么時候使用post?
- 9.Cookie 和 Session 的區別?
- 10.Token 相關
- 11.什么是同源策略?