偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一個拼寫錯誤讓整個互聯(lián)網(wǎng)一起犯錯

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

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

什么是 HTTP Referer

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

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

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

圖片圖片

核心作用

1. 流量來源分析

網(wǎng)站運營者可以通過分析 Referer 信息了解:

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

2. 防盜鏈保護

許多網(wǎng)站利用 Referer 來防止其他網(wǎng)站直接鏈接自己的圖片、視頻等資源。服務(wù)器可以檢查 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 存在一個著名的拼寫錯誤:正確的英文單詞應(yīng)該是 "Referrer",但在 1995 年制定 HTTP/1.0 規(guī)范時被誤寫為 "Referer"(少了一個 r)。

當錯誤被發(fā)現(xiàn)時,HTTP 協(xié)議已經(jīng)廣泛部署,為保持向后兼容性,這個拼寫錯誤被永久保留:

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

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

Referrer-Policy 策略

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

策略值

策略

描述

使用場景

no-referrer

不發(fā)送 Referer

最高隱私保護

no-referrer-when-downgrade

HTTPS 到 HTTP 時不發(fā)送,其他情況正常發(fā)送

現(xiàn)代瀏覽器默認

origin

只發(fā)送協(xié)議、域名和端口

平衡功能和隱私

origin-when-cross-origin

同源發(fā)送完整 URL,跨域只發(fā)送域名

推薦的默認策略

same-origin

僅同源請求發(fā)送 Referer

內(nèi)部分析

strict-origin

類似 origin,但 HTTPS 到 HTTP 時不發(fā)送:

較少

strict-origin-when-cross-origin

綜合考慮安全性的策略

現(xiàn)代瀏覽器默認

unsafe-url

始終發(fā)送完整 URL

較少

設(shè)置方法

HTTP 響應(yīng)頭:

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 屬性相關(guān)值

noreferrer

阻止發(fā)送 Referer 頭:

<a  rel="noreferrer">不發(fā)送Referer</a>

noopener

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

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

nofollow

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

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

組合使用

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

總結(jié)

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

責任編輯:武曉燕 來源: 程序員wayn
相關(guān)推薦

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

實時通信互聯(lián)網(wǎng)

2013-07-29 09:53:57

醫(yī)療馬云阿里

2021-10-18 16:49:27

工業(yè)互聯(lián)網(wǎng)安全

2013-08-21 15:42:25

2023-04-11 07:48:32

WebGLCanvas

2019-07-23 16:45:08

區(qū)塊鏈互聯(lián)網(wǎng)

2013-08-13 10:07:57

移動互聯(lián)網(wǎng)移動開發(fā)轉(zhuǎn)行創(chuàng)業(yè)

2023-08-23 08:05:05

智能搜索功能Edge

2015-07-01 13:53:06

致遠協(xié)同

2018-03-22 07:06:20

互聯(lián)網(wǎng)互聯(lián)網(wǎng)++互聯(lián)網(wǎng)

2023-10-18 10:00:53

Chrome瀏覽器
點贊
收藏

51CTO技術(shù)棧公眾號