2017-06-04 109 views
0

http_x_forwarded_for安全嗎?
在請求中,是否可以用fake ip修改http_x_forwarded_for
黑客可以這樣做嗎?是http_x_forwarded_for安全檢查IP

+0

[如何正確使用HTTP_X_FORWARDED_FOR?](https://stackoverflow.com/q/11452938/608639),[HTTP_CLIENT_IP和HTTP_X_FORWARDED_FOR之間的區別是什麼?](https://stackoverflow.com/q/7445592/608639)等 – jww

+0

[PHP最準確/安全的方式來獲取真實用戶IP地址在2017]可能重複(https://stackoverflow.com/questions/44085102/php-most-accurate-safe-way-to -get實時的用戶IP地址的功能於2017年) – Narf

回答

0

由於IP網絡的工作方式,沒有辦法告訴連接到您的服務器的客戶端的實際IP地址。這個問題甚至沒有意義。如果在網絡上使用NAT,您希望將哪個IP看作客戶端IP,NATed網絡上的內部(本地)IP還是第一個公共IP?當整個互聯網提供商公司與客戶端網絡一起工作時(儘管這種情況越來越少見),你會從後者中獲得什麼?

您需要確認在IP網絡中,流量通過許多節點,其中一些節點可能會更改請求的明顯IP地址。這些包括NAT服務器和不同種類的代理服務器,在到達服務器之前無法確定數據包發生了什麼。

也在HTTP中,可以僞造任何請求標頭。這包括任何以您喜歡的語言開頭的變量SERVER_。這些不可信,用戶可以發送任何他想要的。

唯一的例外是實際明顯的客戶端IP,這是很難僞造,但只給你最後一跳(最後一個代理,或最後一個NAT服務器)。

此外,大多數情況下,如果您需要了解客戶端IP,那麼在邏輯上某些事情是錯誤的。例如,您必須接受客戶端IP絕不是用戶(個人)的標識符。

0
is http_x_forwarded_for safe? 

它取決於您所依賴的代理服務器。代理服務器可以完全控制這個頭,它可以設置頭中的任何值。所以,如果你在控制代理,你可以信任這個屬性並且可以確認它的正確信息。過去,我成功地使用了這個功能,通過受信任的代理服務器設置來讀取客戶端IP地址。

is it able to modify the http_x_forwarded_for with fake ip? 
Can hackers do that? 

如果你談論的是包含多個代理服務器的網絡中,在一個特定的跳修改請求到達服務器之前,則是它的可能。所以,它取決於你的代理設置,如何控制它。如果它通過攔截轉發的代理請求在網絡隧道上更改頭部,則可能可以使用IMO,但可以使用適當的握手協議來避免。