成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一個拼寫錯誤讓整個互聯網一起犯錯

網絡 網絡管理
HTTP Referer 雖然只是一個小小的請求頭,但它承載著 Web 發展的歷史,見證了互聯網從功能至上到隱私保護的轉變。那個著名的拼寫錯誤也提醒我們,技術標準的制定需要更加嚴謹和謹慎。

在 Web 開發的世界里,有這樣一個字段——它每天默默地工作著,記錄著用戶的來源,保護著網站的安全,卻因為一個歷史性的拼寫錯誤而成為了程序員們茶余飯后的談資。它就是 HTTP 頭部中的 Referer 字段。

什么是 HTTP Referer

HTTP Referer 是一個請求頭字段,用于告訴服務器用戶是從哪個頁面鏈接過來的。當你從一個網頁點擊鏈接跳轉到另一個網頁時,瀏覽器會自動在新的 HTTP 請求中添加 Referer 頭,其值為上一個頁面的 URL。

Referer: https://example.com/page1.html

這告訴服務器,用戶是從 https://www.example.com/page1.html 這個頁面跳轉過來的。

圖片圖片

核心作用

1. 流量來源分析

網站運營者可以通過分析 Referer 信息了解:

  • 用戶從哪些網站訪問過來
  • 哪些頁面是主要的流量入口
  • 外部鏈接的效果如何
  • 用戶的瀏覽路徑和行為習慣

2. 防盜鏈保護

許多網站利用 Referer 來防止其他網站直接鏈接自己的圖片、視頻等資源。服務器可以檢查 Referer 是否來自允許的域名,如果不是則拒絕請求。

# nginx 圖片防盜鏈配置
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    valid_referers none blocked server_names
                   *.mysite.com *.mydomain.com;
    if ($invalid_referer) {
        return 403;
    }
}

3. 安全防護

用于 CSRF 攻擊防護和惡意請求檢測:

# nginx CSRF 攻擊防護
location /api {
    valid_referers none blocked server_names *.example.com;
    if ($invalid_referer) {
        return 403;
    }
    proxy_pass http://backend;
}

這樣就可以檢查請求是否來自合法域名(*.example.com)。

著名的拼寫錯誤

圖片圖片

HTTP Referer 存在一個著名的拼寫錯誤:正確的英文單詞應該是 "Referrer",但在 1995 年制定 HTTP/1.0 規范時被誤寫為 "Referer"(少了一個 r)。

當錯誤被發現時,HTTP 協議已經廣泛部署,為保持向后兼容性,這個拼寫錯誤被永久保留:

  • HTTP 頭部:使用錯誤拼寫 Referer
  • HTML 屬性:使用正確拼寫 referrer
<!-- HTML中使用正確拼寫 -->
<meta name="referrer" content="origin">

<!-- HTTP頭中使用錯誤拼寫 -->
Referer: https://example.com

Referrer-Policy 策略

為了解決隱私問題,W3C 制定了 Referrer Policy 規范,提供了精細的控制機制,現代瀏覽器支持 Referrer-Policy 來控制 Referer 的發送行為:

策略值

策略

描述

使用場景

no-referrer

不發送 Referer

最高隱私保護

no-referrer-when-downgrade

HTTPS 到 HTTP 時不發送,其他情況正常發送

現代瀏覽器默認

origin

只發送協議、域名和端口

平衡功能和隱私

origin-when-cross-origin

同源發送完整 URL,跨域只發送域名

推薦的默認策略

same-origin

僅同源請求發送 Referer

內部分析

strict-origin

類似 origin,但 HTTPS 到 HTTP 時不發送:

較少

strict-origin-when-cross-origin

綜合考慮安全性的策略

現代瀏覽器默認

unsafe-url

始終發送完整 URL

較少

設置方法

HTTP 響應頭:

res.setHeader('Referrer-Policy', 'strict-origin-when-cross-origin');

HTML Meta 標簽:

<meta name="referrer" content="strict-origin-when-cross-origin">

元素級別控制:

<a  referrerpolicy="no-referrer">外部鏈接</a>
<img src="image.jpg" referrerpolicy="origin">

rel 屬性相關值

noreferrer

阻止發送 Referer 頭:

<a  rel="noreferrer">不發送Referer</a>

noopener

防止新窗口訪問原窗口對象:

<a  target="_blank" rel="noopener">安全新窗口</a>

nofollow

告訴搜索引擎不要跟蹤鏈接:

<a  rel="nofollow">不被索引的鏈接</a>

組合使用

<a 
   target="_blank"
   rel="noopener noreferrer nofollow">
   完全安全的外部鏈接
</a>

總結

HTTP Referer 雖然只是一個小小的請求頭,但它承載著 Web 發展的歷史,見證了互聯網從功能至上到隱私保護的轉變。那個著名的拼寫錯誤也提醒我們,技術標準的制定需要更加嚴謹和謹慎。

責任編輯:武曉燕 來源: 程序員wayn
相關推薦

2016-03-12 21:56:01

2018-01-31 09:25:39

2022-12-08 09:31:28

2014-10-29 10:01:48

Ruby

2018-03-07 09:30:25

Linux命令Bash

2013-03-04 16:45:49

2014-08-21 10:05:14

ZMapTCPIP

2015-04-02 11:17:20

2016-10-11 13:44:23

實時通信互聯網

2013-07-29 09:53:57

醫療馬云阿里

2021-10-18 16:49:27

工業互聯網安全

2013-08-21 15:42:25

2023-04-11 07:48:32

WebGLCanvas

2019-07-23 16:45:08

區塊鏈互聯網

2013-08-13 10:07:57

移動互聯網移動開發轉行創業

2023-08-23 08:05:05

智能搜索功能Edge

2015-07-01 13:53:06

致遠協同

2018-03-22 07:06:20

互聯網互聯網++互聯網

2023-10-18 10:00:53

Chrome瀏覽器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲视频欧美视频 | www.日韩av.com | 一区二区三区四区视频 | 日韩中文在线观看 | 一区二区三区欧美大片 | 日本成人午夜影院 | 在线亚洲欧美 | 亚洲乱码一区二区三区在线观看 | 欧美日韩亚洲视频 | 日韩av啪啪网站大全免费观看 | 日韩欧美国产一区二区三区 | 99热电影| 久久久久久影院 | 欧美一区二区小视频 | 无码一区二区三区视频 | 日韩免费视频 | 欧美xxxx性 | 欧美另类视频在线 | 久久国产电影 | jlzzjlzz欧美大全 | 在线视频日韩精品 | 日日草夜夜草 | 欧美久久久久久久 | 亚洲成人免费视频在线 | 午夜影院污 | 成年人黄色一级片 | 免费一级毛片 | 国产日韩精品一区二区 | 91av导航| 高清一区二区视频 | 国产精品久久久爽爽爽麻豆色哟哟 | 免费一区二区三区在线视频 | 狠狠干美女 | 欧美亚洲高清 | 隔壁老王国产在线精品 | 超碰在线人 | 免费性视频 | 中文字幕日韩在线 | 成人国产精品色哟哟 | 亚洲国产精品视频一区 | 国产一区二区精品 |