跨域簡單介紹

2022-02-02 14:34:26 字數 1103 閱讀 3367

下面的這些情況是屬於跨域的:

說到跨域,一般人都有乙個模糊的概念,大概就是從乙個網域名稱的網頁去訪問了另乙個網域名稱的資源,獲取失敗了。

但是跨域產生的原因,有些人可能就沒了解過。

跨域的原因

跨域時不能獲取資源,並不是伺服器做了一些限制。而是瀏覽器做的限制

沒錯,你寫乙個ajax跨域請求時,開啟f12除錯,會發現在response裡面是拿到了伺服器返回的資料的。由此可以看出伺服器並沒有對跨域做限制,資料通訊是正常的。

問題出現的原因,就是瀏覽器判斷了該請求是跨域請求,所以即使從伺服器拿到了資料,也不顯示給你。並且提示你出錯了,跨域請求了。

所以,現在一般人在說跨域的時候都在說ajax跨域問題,js跨域問題,這個叫法是不對的,應該改成,瀏覽器的跨域問題

如果瀏覽器不做跨域限制,會出現安全問題。

比如可以做下面的攻擊:

1.使用者登入了自己的銀行頁面 向使用者的cookie中新增使用者標識。

2.使用者瀏覽了惡意頁面 執行了頁面中的惡意ajax請求**。

3.向發起ajax http請求,請求會預設把對應cookie也同時傳送過去。

4.銀行頁面從傳送的cookie中提取使用者標識,驗證使用者無誤,response中返回請求資料。此時資料就洩露了。

5.而且由於ajax在後台執行,使用者無法感知這一過程。

解決方案:

cors(cross-origin resource sharing)跨域資源共享,定義了必須在訪問跨域資源時,瀏覽器與伺服器應該如何溝通。cors背後的基本思想就是使用自定義的http頭部讓瀏覽器與伺服器進行溝通,從而決定請求或響應是應該成功還是失敗。

cors與jsonp相比,無疑更為先進、方便和可靠。

1、 jsonp只能實現get請求,而cors支援所有型別的http請求。

2、 使用cors,開發者可以使用普通的xmlhttprequest發起請求和獲得資料,比起jsonp有更好的錯誤處理。

3、 jsonp主要被老的瀏覽器支援,它們往往不支援cors,而絕大多數現代瀏覽器都已經支援了cors)。

跨域的簡單介紹

跨域就指著協議,網域名稱,埠不一致,出於安全考慮,跨域的資源之間是無法互動的 1 access control allow origin access control allow origin是html5中定義的一種解決資源跨域的策略。表示該資源誰都可以用 2 access control allo...

jsonp簡單跨域

在web開發的時候難免會遇到跨域求情資料的問題,此時使用jsonp是比較簡便的。a.com網域名稱下的js,是無法訪問網域名稱為b.com下的js的,會報跨域的錯誤 所以你可以動態建立乙個標籤,把他的src屬性設定成你要請求的伺服器的url,如 就等於是使用去向伺服器請求,但是這個是時候伺服器不能直...

nginx 跨域訪問簡單學習

跨域訪問簡單來說就是有兩個網域名稱去同時訪問乙個頁面。提到跨域訪問就很容易想到現在最常見的csrf攻擊。那麼何為csrf攻擊呢?接下來我就簡單的用語言描述一下 現在有使用者usr,a,惡意 b。1 使用者usr去訪問a 2 usr得到了a的cookies 3 在沒有關閉登入 a頁面的情況下登入了惡意...