Referrer-Policy
åºçº¿
广æ³å¯ç¨
*
èª 2020å¹´1æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
* æ¤ç¹æ§çæäºé¨åçæ¯æç¨åº¦å¯è½ææä¸åã
Referrer-Policy é¦é¨ç¨æ¥ç管åªäºè®¿é®æ¥æºä¿¡æ¯ââä¼å¨ Referer ä¸åéââåºè¯¥è¢«å
å«å¨çæç请æ±å½ä¸ã
| Header type | Response header |
|---|---|
| Forbidden request header | no |
è¯æ³
注æ Referer å®é
䏿¯åè¯ "referrer" çé误æ¼åãReferrer-Policy è¿ä¸ªé¦é¨å¹¶æ²¡æå»¶ç»è¿ä¸ªé误æ¼åã
Referrer-Policy: no-referrer
Referrer-Policy: no-referrer-when-downgrade
Referrer-Policy: origin
Referrer-Policy: origin-when-cross-origin
Referrer-Policy: same-origin
Referrer-Policy: strict-origin
Referrer-Policy: strict-origin-when-cross-origin
Referrer-Policy: unsafe-url
æä»¤
no-referrer-
æ´ä¸ª
Refereré¦é¨ä¼è¢«ç§»é¤ãè®¿é®æ¥æºä¿¡æ¯ä¸éç请æ±ä¸èµ·åéã no-referrer-when-downgrade-
å¨åçå®å ¨çº§å«æå®å ¨çº§å«æåçæ åµä¸ï¼HTTPâHTTPãHTTPâHTTPSãHTTPSâHTTPSï¼ï¼å¨
Refererä¸å鿥æºãè·¯å¾åæ¥è¯¢å符串ãèå¨ç®æ çå®å ¨çº§å«ä¸éçæ åµä¸ï¼HTTPSâHTTPãHTTPSâfileï¼åä¸åéRefereræ 头ã origin-
ä» å¨
Refereræ 头ä¸å鿥æºãä¾å¦https://example.com/page.htmlææ¡£ä¼å°https://example.com/ä½ä¸ºå¼ç¨å°åã origin-when-cross-origin-
对äºåæºç请æ±ï¼ä¼åé宿´ç URL ä½ä¸ºå¼ç¨å°åï¼ä½æ¯å¯¹äºéåæºè¯·æ±ä» åéæä»¶çæºã
same-origin-
对äºåæºç请æ±ä¼åéå¼ç¨å°åï¼ä½æ¯å¯¹äºéåæºè¯·æ±åä¸åéå¼ç¨å°åä¿¡æ¯ã
strict-origin-
å¨åçå®å ¨çº§å«çæ åµä¸ï¼åéæä»¶çæºä½ä¸ºå¼ç¨å°å (HTTPS->HTTPS)ï¼ä½æ¯å¨éçº§çæ åµä¸ä¸ä¼åé (HTTPS->HTTP)ã
strict-origin-when-cross-originï¼é»è®¤å¼ï¼-
对äºåæºç请æ±ï¼å鿥æºãè·¯å¾ä»¥åæ¥è¯¢å符串ã对äºå¨ç¸åå®å ¨çº§å«çæ åµä¸ï¼HTTPSâHTTPSï¼çè·¨æºè¯·æ±ï¼ä» å鿥æºãå¨ç®æ çå®å ¨çº§å«ä¸éçæ åµä¸ï¼HTTPSâHTTPï¼åä¸åé
Refereræ 头ã unsafe-url-
æ 论æ¯åæºè¯·æ±è¿æ¯éåæºè¯·æ±ï¼é½åé宿´ç URLï¼ç§»é¤åæ°ä¿¡æ¯ä¹åï¼ä½ä¸ºå¼ç¨å°åã
夿³¨ï¼è¿é¡¹è®¾ç½®ä¼å°å TLS å®å ¨åè®®ä¿æ¤çèµæºçæºåè·¯å¾ä¿¡æ¯æ³é²ç»éå®å ¨çæºæå¡å¨ãè¿è¡æ¤é¡¹è®¾ç½®çæ¶åè¦æ éèèã
éæå° HTML
ä½ ä¹å¯ä»¥å¨ HTML å
设置 referrer çç¥ãä¾å¦ï¼ä½ å¯ä»¥ç¨ä¸ä¸ª name 为 referrer ç <meta> å
ç´ ä¸ºæ´ä¸ªææ¡£è®¾ç½® referrer çç¥ã
<meta name="referrer" content="origin" />
æè
ç¨ <a>ã<area>ã<img>ã<iframe>ã<script> æè
<link> å
ç´ ä¸ç referrerpolicy 屿§ä¸ºå
¶è®¾ç½®ç¬ç«ç请æ±çç¥ã
<a href="http://example.com" referrerpolicy="origin">â¦</a>
å¦å¤ä¹å¯ä»¥å¨ <a>ã<area> æè
<link> å
ç´ ä¸å° rel 屿§è®¾ç½®ä¸º noreferrerã
<a href="http://example.com" rel="noreferrer">â¦</a>
éæå° CSS
CSS å¯ä»¥ä»æ ·å¼è¡¨è·åå¼ç¨çèµæºï¼è¿äºèµæºä¹å¯ä»¥éµä» referrer çç¥ï¼
示ä¾
| Policy | Document | Navigation to | Referrer |
|---|---|---|---|
no-referrer |
https://example.com/page.html |
any domain or path | no referrer |
no-referrer-when-downgrade |
https://example.com/page.html |
https://example.com/otherpage.html |
https://example.com/page.html |
no-referrer-when-downgrade |
https://example.com/page.html |
https://mozilla.org |
https://example.com/page.html |
no-referrer-when-downgrade |
https://example.com/page.html |
http://example.org | no referrer |
origin |
https://example.com/page.html |
any domain or path | https://example.com/ |
origin-when-cross-origin |
https://example.com/page.html |
https://example.com/otherpage.html |
https://example.com/page.html |
origin-when-cross-origin |
https://example.com/page.html |
https://mozilla.org |
https://example.com/ |
origin-when-cross-origin |
https://example.com/page.html |
http://example.com/page.html | https://example.com/ |
same-origin |
https://example.com/page.html |
https://example.com/otherpage.html |
https://example.com/page.html |
same-origin |
https://example.com/page.html |
https://mozilla.org |
no referrer |
strict-origin |
https://example.com/page.html |
https://mozilla.org |
https://example.com/ |
strict-origin |
https://example.com/page.html |
http://example.org | no referrer |
strict-origin |
http://example.com/page.html | any domain or path | http://example.com/ |
strict-origin-when-cross-origin |
https://example.com/page.html |
https://example.com/otherpage.html |
https://example.com/page.html |
strict-origin-when-cross-origin |
https://example.com/page.html |
https://mozilla.org |
https://example.com/ |
strict-origin-when-cross-origin |
https://example.com/page.html |
http://example.org | no referrer |
unsafe-url |
https://example.com/page.html |
any domain or path | https://example.com/page.html |
æå®åå¤çç¥
å¦æä½ è¦ä¸ºé£äºçç¥æªè·å¹¿æ³çæµè§å¨æ¯æçæ 嵿å®ä¸ç§åå¤çç¥ï¼ä½¿ç¨éå·åéçå表ï¼å¹¶å°å¸æä½¿ç¨ççç¥æ¾å¨æåï¼
Referrer-Policy: no-referrer, strict-origin-when-cross-origin
å¨ä¸é¢çåºæ¯ä¸ï¼no-referrer ä»
å¨ strict-origin-when-cross-origin ä¸è¢«æµè§å¨æ¯æçæ
åµä¸è¢«ä½¿ç¨ã
è§è
| è§è |
|---|
| Referrer Policy > # referrer-policy-header > |
æµè§å¨å ¼å®¹æ§
夿³¨ï¼ä»çæ¬ 53 èµ·ï¼Gecko å¨ about:config 䏿ä¾äºä¸é¡¹å好设置ï¼ä½¿å¾ç¨æ·å¯ä»¥èªè¡è®¾å®é»è®¤ç Referrer-Policy å¼âânetwork.http.referer.userControlPolicyãå¯éçå¼å æ¬ï¼
- 0 â
no-referrer - 1 â
same-origin - 2 â
strict-origin-when-cross-origin - 3 â
no-referrer-when-downgrade(the default)
åè§
-
å ¶ä»è®¾å®é¡µé¢å¼ç¨çç¥çæ¹å¼ï¼
- A
<meta>element with a name ofreferrer. - A
referrerpolicyattribute on an<a>,<area>,<img>,<iframe>, or<link>element. - The
noreferrerlink relation on an a, area, or link element (rel="noreferrer"). - When using Fetch:
Request.referrerPolicy
- A
-
Tighter Control Over Your Referrers â Mozilla Security Blog