摘要:帶著這個問題查了一些資料,講同源策略的很多,很多地方都說這是安全的基石,但是沒看到哪里明確的提到這只是瀏覽器的行為,和服務端沒有關系。
前段時間寫了個前后端分離的項目,前后端都是我一個人完成,通信都是通過接口進行的,這時候就要面對接口安全的問題,api無法使用laravel框架提供的csrf-token等安全措施,我只做了個簡單的基于session的驗證。我的所有api都是通過ajax來進行的,心想既然有跨域限制,不允許跨域的話是不是就萬事大吉了呢?跨域限制僅僅是瀏覽器的行為嗎?服務器有跨域限制嗎?
(此處有誤,可以使用csrf-token,但是在發(fā)起post請求前必須獲取到cookie中的token,將其加入header中,可以加在單頁的入口html里,或者來一次get請求)
如果只是瀏覽器的行為,那么就能輕松繞過了,沒有意義。
帶著這個問題查了一些資料,講同源策略的很多,很多地方都說這是web安全的基石,但是沒看到哪里明確的提到這只是瀏覽器的行為,和服務端、http沒有關系。
于是自己做個實驗咯,實驗步驟如下:
在阿里云服務器上用beego起一個后端應用,弄一個test接口,不設置Access-Control-Allow-Origin
服務器上寫一個靜態(tài)頁面,有個按鈕點擊發(fā)送ajax請求test接口
本地弄一個同樣的頁面
本地弄一個代理服務器,轉發(fā)test至阿里云服務器
分別進行如下測試:
線上頁面在瀏覽器中發(fā)請求到線上服務器
本地頁面在瀏覽器中發(fā)請求到線上服務器
修改allow-origin為*,本地頁面在瀏覽器中發(fā)請求到線上服務器
不設置allow-origin,本地頁面在瀏覽器中通過代理服務器請求接口
不設置allow-origin,使用postman等工具請求接口
測試結果:除了第二種情況,其他的均能進行跨域請求,結論就是跨域限制僅僅是瀏覽器的行為,通過代理服務器,或者其他工具發(fā)送請求就能輕松繞過。
那么,同源策略是不是沒有什么卵用呢?
錯,同源策略是web安全的基石,當然很重要了
因為:
隨著互聯(lián)網(wǎng)的發(fā)展,"同源政策"越來越嚴格。目前,如果非同源,共有三種行為受到限制。
(1) Cookie、LocalStorage 和 IndexDB 無法讀取。
(2) DOM 無法獲得。
(3) AJAX 請求不能發(fā)送。
如果在其他域名能讀qq.com的cookie那就相當于它能拿到登陸權限
reference:
瀏覽器同源政策及其規(guī)避方法-阮一峰
瀏覽器的同源策略-mdn
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11296.html
摘要:在接觸前端開發(fā)起,跨域這個詞就一直以很高的頻率在我們學習工作中重復出現(xiàn),最近在工作中遇到了跨域的相關問題,這里我把它總結記錄一下。 在接觸前端開發(fā)起,跨域這個詞就一直以很高的頻率在我們學習工作中重復出現(xiàn),最近在工作中遇到了跨域的相關問題,這里我把它總結記錄一下。關于跨域,有N種類型,現(xiàn)在我只專注于ajax請求跨域(ajax跨域只是屬于瀏覽器同源策略中的一部分,其它的這里不做介紹),內容...
摘要:關于,強烈推薦閱讀跨域資源共享詳解阮一峰另外,這里也整理了一個實現(xiàn)原理圖簡化版如何判斷是否是簡單請求瀏覽器將請求分成兩類簡單請求和非簡單請求。 前言 從剛接觸前端開發(fā)起,跨域這個詞就一直以很高的頻率在身邊重復出現(xiàn),一直到現(xiàn)在,已經(jīng)調試過N個跨域相關的問題了,16年時也整理過一篇相關文章,但是感覺還是差了點什么,于是現(xiàn)在重新梳理了一下。 個人見識有限,如有差錯,請多多見諒,歡迎提出iss...
摘要:什么是跨域個人一句話解釋如果與不同源,那么頁面不能獲取頁面的資源。所以用同源策略來限制跨域是必須的。它是標準,是跨源請求的根本解決方法。 本文整理了一些有關跨域的基礎知識和細節(jié)問題。 什么是跨域 個人一句話解釋:如果 url A 與 url B 不同源,那么頁面A不能獲取頁面B的資源。這里有兩個關鍵詞:url 和 同源,瀏覽器的同源策略就是針對兩個url,它們滿足以下三個條件,才是同源...
摘要:四跨域攻擊跨域攻擊可以理解為誘導受害者訪問非法網(wǎng)站,黑客利用受害者的會話信息模擬請求,以達到篡改數(shù)據(jù)的目的。我們在百度上搜索一些關鍵字之后,訪問其他網(wǎng)站時例如會發(fā)現(xiàn),為何我剛剛搜索的關鍵字圖片會在網(wǎng)頁上顯示那很有可能放置了百度的腳本代碼。 本人工作中偶爾會和瀏覽器打交道,也遇到過一些坑,在此分享一下網(wǎng)頁跨域訪問的相關場景和知識,希望對讀者有幫助。本文來自于我的博客網(wǎng)站:www.51th...
閱讀 1411·2021-10-08 10:04
閱讀 733·2021-09-07 09:58
閱讀 2912·2019-08-30 15:55
閱讀 2424·2019-08-29 17:21
閱讀 2126·2019-08-28 18:04
閱讀 3075·2019-08-28 17:57
閱讀 715·2019-08-26 11:46
閱讀 2228·2019-08-23 17:20