X_Forward_For(XXF)獲取用戶IP

用戶訪問web server時,可能會經過多層proxy server,此時獲取用戶IP的方法:

1、用戶訪問鏈經過CDN:統一配置xxf模式,CDN_SRC_IP存在,用戶IP即爲第一個IP:{用戶IP,proxy server1 IP,proxy server2 IP....}

2、不經過CDN:統一配置XXF模式,如果XXF只存在一個IP,即爲用戶IP;如果存在多個IP,XXF形式爲:{ proxy server IP.....,用戶IP }或者{proxy server IP.....,用戶IP,rpoxy server IP}

3、不存在XXF:用戶ip爲remote_addr


可以通過Firefox瀏覽器的firebug插件查看相應的用戶訪問一個服務所經過的鏈路:如下圖所示


Via——當客戶端請求到達第一個代理服務器時,該服務器會在自己發出的請求裏面添加 Via 頭部,並填上自己的相關信息,當下一個代理服務器 收到第一個代理服務器的請求時,會在自己發出的請求裏面複製前一個代理服務器的請求的Via 頭部,並把自己的相關信息加到後面, 以此類推,當 OCS 收到最後一個代理服務器的請求時,檢查 Via 頭部,就知道該請求所經過的路由。


通過Firefox modify headers模擬XXF鏈路訪問nginx主機,可以通過nginx日誌看到記錄的XXF形式:





後續待問題:通過Firefox modify header可以用假IP向服務器發送請求,如何阻擋僞IP?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章