同源策略跨域請求解決方案(Django框架為例)

      網(wǎng)友投稿 807 2022-05-29

      1.瀏覽器的同源策略

      同源策略是瀏覽器的一個(gè)安全功能,不同源的客戶端腳本(js文件)在沒有明確授權(quán)的情況下,不能讀寫對(duì)方資源。只有同一個(gè)源的腳本賦予dom、讀寫cookie、session、ajax等操作的權(quán)限。 所以xyz.com下的js腳本采用ajax讀取abc.com里面的文件數(shù)據(jù)是會(huì)被拒絕的。

      另外同源策略只對(duì)網(wǎng)頁的HTML文檔做了限制,對(duì)加載的其他靜態(tài)資源如javascript、css、圖片等仍然認(rèn)為屬于同源。

      同源策略限制了從同一個(gè)源加載的文檔或腳本如何與來自另一個(gè)源的資源進(jìn)行交互。這是一個(gè)用于隔離潛在惡意文件的重要安全機(jī)制。

      url由協(xié)議、域名、端口和路徑組成,如果兩個(gè)url的協(xié)議、域名和端口相同,則這兩個(gè)url是同源的。

      舉例來說,http://www.example.com/dir/page.html這個(gè)網(wǎng)址,協(xié)議是http://,域名是www.example.com,端口是80(默認(rèn)端口可以省略)。它的同源情況如下。

      1. 同源策略的目的,是為了保證用戶信息的安全,防止惡意的網(wǎng)站竊取數(shù)據(jù)。 2.頁面中的鏈接,重定向以及表單提交是不會(huì)受到同源策略限制的。 3.跨域資源的引入是可以的。但是js不能讀寫加載的內(nèi)容。如嵌入到頁面中的