CDN或負載均衡或WAF,后端服務器獲取真實IP


問題起因:

1. 后端PHP的$_SERVER["REMOTE_ADDR"]個別服務器獲取不到真實IP

2. iptables 和 懸鏡 等工具,設置IP黑名單不起作用

 

簡單點說,請求到服務器要經過,CDN或負載均衡或WAF等,而它們是以代理的方法訪問后端服務器

將IP地址,換成它們的IP地址,所以看到的是 代理proxy的IP,有的到達服務器前面的這些軟件工具

是可以設置,顯地真實IP,比如阿里雲的SLB,所以有的是代理的IP,有的是真實的IP

 

在來了解一個,X-Forwarded-For

X-Forwarded-For 簡稱XFF頭,是一個 HTTP 擴展頭部,用來表示 HTTP 請求端真實 IP。現在已經被很多代理軟件采用

它使用,比如CDN或負載均衡或WAF后,它會在HTTP頭上加一個 X-Forwarded-For

它的格式,X-Forwarded-For: client1, proxy1, proxy2。

所以如果是PHP獲取真實IP,XFF的第一個IP來獲取真實IP。

 

至於,iptables 限制IP,不起作用,只能在nginx或者apache上想辦法。

1. nginx realip 或者 apache rpaf 的模塊來獲取真實IP,然后,自己寫腳本在 nginx 或者 apache 限制某些 IP 訪問。

2. 現在很多的,CDN或負載均衡或WAF等,黑名單接口,可以獲取到非法IP然后腳本過濾掉。

 

by bin

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM