注意,開(kāi)啟此模式后,應(yīng)用就默認(rèn)自己處于反向代理之后,會(huì)支持通過(guò)解析約定的請(qǐng)求頭來(lái)獲取用戶真實(shí)的 IP,協(xié)議和域名。如果你的服務(wù)未部署在反向代理之后,請(qǐng)不要開(kāi)啟此配置,以防被惡意用戶偽造請(qǐng)求 IP 等信息。
我們可以拿第一個(gè)作為請(qǐng)求的真實(shí) IP,但是如果有惡意用戶在請(qǐng)求中傳遞了 X-Forwarded-For 參數(shù)來(lái)偽造其在反向代理之后,就會(huì)導(dǎo)致 X-Forwarded-For 拿到的值不準(zhǔn)確了,可以被用來(lái)偽造請(qǐng)求 IP 地址,突破應(yīng)用層的一些 IP 限制。
X-Forwarded-For: fake, client, proxy1, proxy2
為了避免此問(wèn)題,我們可以通過(guò) config.maxIpsCount 來(lái)配置前置的反向代理數(shù)量,這樣在獲取請(qǐng)求真實(shí) IP 地址時(shí),就會(huì)忽略掉用戶多傳遞的偽造 IP 地址了。例如我們將應(yīng)用部署在一個(gè)統(tǒng)一的接入層之后(例如阿里云 SLB),我們可以將此參數(shù)配置為 1,這樣用戶就無(wú)法通過(guò) X-Forwarded-For 請(qǐng)求頭來(lái)偽造 IP 地址了。
更多建議: