最近chrome宣布,從85版本開始,將referrer-policy預設策略從
no-referrer-when-downgrade 變更到 strict-origin-when-cross-origin,今天來分析這個調整帶來的一些影響。
首先chrome的這個調整會減少**對跨站使用者的靜默追蹤,是非常好的措施。
羞羞,如果你在這個頁面點了乙個微博鏈結,根據http協議,你的瀏覽器在向微博傳送請求的時候,也會把你現在瀏覽的頁面url通過referer發給微博的伺服器。
如果你此時登入了微博賬號,那微博自然就知道你是誰,而且也知道是從羞羞的url那裡過來的。
如果按照chrome的新策略,微博就只能知道你是通過
來,拿不到具體的url。
那,我們先來學習一下referrer-policy。
什麼是referrer-policy
http頭中的referrer-policy主要是用來監管哪些訪問**資訊,它會在referer中傳送一些資訊。
比如,我在微博上搜尋github
這裡要注意referer頭應該是referrer,少了乙個字母r,因為在制定規範時犯了乙個語法錯誤,一直沿用這個錯誤至今。
referrer-policy總共有8種策略
no-referrer-when-downgrade是預設值,表示在沒有指定任何策略的情況下使用者**的預設行為。在同等安全級別的情況下,引用頁面的位址會被傳送(https->https),但是在降級的情況下不會被傳送 (https->http)。
strict-origin-when-cross-origin則是對於同源的請求,會傳送完整的url作為引用位址;在同等安全級別的情況下,傳送檔案的源作為引用位址(https->https);在降級的情況下不傳送此首部 (https->http)。
這次更改的影響
如果chrome把預設策略改為strict-origin-when-cross-origin,在你訪問的**沒有設定的情況下,
是以下這種情況:
網域名稱部分
。我想體驗怎麼辦
chrome更改並非突然,其實從chrome 81版本開始,就可以通過訪問
chrome://flags/#reduced-referrer-granularity
來手動開啟此功能,只是在chrome 85版本之後把它變成了預設值。體驗最好的辦法就是公升級chrome到85版本。 使用Postman傳送需要登入的url
在自測過程中,如果你採用postman工具來傳送請求,那麼對於沒有任何安全限制的公共api介面,我們可以直接通過url param引數的形式就可以傳送並測試介面了。但是針對部分系統有安全性的校驗,比方說必須要登入,或者是必須攜帶安全性校驗引數才可以通過後台的方法校驗,一般情況的話是通過 來處理的。那...
url帶中文引數顯示亂碼的問題
最近要上個專案,其實很簡單的東西,就是拼接乙個url,不過url中的引數需要urlencode編碼的,其實對我來說,這個問題很好解決,c 用httputility.urlencode來進行編碼,asp用server.urlencode來進行編碼。問題解決了嗎?問題剛剛開始 因為這個公用轉向檔案,是針...
url帶中文引數顯示亂碼的問題
最近要上個專案,其實很簡單的東西,就是拼接乙個url,不過url中的引數需要urlencode編碼的,其實對我來說,這個問題很好解決,c 用httputility.urlencode來進行編碼,asp用server.urlencode來進行編碼。問題解決了嗎?問題剛剛開始 因為這個公用轉向檔案,是針...