在IIS 上配置 X-Forwarded-For 防護(hù)
客戶沒有裝nginx,直接用iis設(shè)置。
X-Forwarded-For(XFF)是一個(gè) HTTP 頭,通常用于記錄客戶端的真實(shí) IP 地址,尤其是在反向代理服務(wù)器(如 Nginx、CDN)前后。攻擊者可以偽造這個(gè)頭部,繞過 IP 訪問控制。因此,我們需要在 IIS 上配置防護(hù)規(guī)則,防止偽造的 X-Forwarded-For 請(qǐng)求。
步驟:在 IIS 上設(shè)置 X-Forwarded-For 防護(hù)
安裝 URL Rewrite 模塊
首先,確保 IIS 安裝了 URL Rewrite 模塊。如果沒有,可以從 IIS 下載中心下載并安裝。配置入站規(guī)則
打開 IIS 管理器,選擇網(wǎng)站 → 雙擊 URL Rewrite → 點(diǎn)擊 添加規(guī)則,選擇 空白規(guī)則(Blank Rule)。條件 1:
{HTTP_X_FORWARDED_FOR}→ 正則表達(dá)式.+(表示請(qǐng)求包含 XFF)條件 2:
{REMOTE_ADDR}→ 不匹配模式,設(shè)置為可信的反代 IP(例如:^172\.16\.20\.50$)規(guī)則名稱:
防止偽造 XFF請(qǐng)求 URL:選擇
正則表達(dá)式,并設(shè)置為.*(匹配所有請(qǐng)求)添加條件:
配置動(dòng)作:選擇 自定義響應(yīng),設(shè)置狀態(tài)碼
403,并寫上“偽造 XFF”作為描述。保存并應(yīng)用
點(diǎn)擊 應(yīng)用,保存規(guī)則。之后,重啟 IIS 或回收應(yīng)用池。
如何測試規(guī)則是否生效
使用 curl 測試偽造的 X-Forwarded-For 請(qǐng)求:
curl -v -H "X-Forwarded-For: 8.8.8.8" https://你的域名/