簡體   English   中英

如何在Go / Java中修改HTTP請求中的IP地址

[英]How to modify ip address in http request in Go/Java

我正在做一個測試工具來測試Web服務器。 該工具可以構造一個簡單的http請求,並將其發送到服務器。 但是每個請求應該有一個不同的src ip addr。

我的問題是。 有什么方法可以通過http請求構建ip包,修改ip addr並直接發送到net?

我使用java或go(新功能)。 非常感謝! :)

IP地址的處理級別比HTTP低-具體來說,它是由TCP / IP協議完成的。 我可以信任HTTP請求的源IP嗎? 很好地概述了從HTTP客戶端獲得的IP為什么值得信賴(並且難以欺騙)的原因。

也就是說,HTTP標頭支持“建議”從TCP獲得的IP地址不正確的想法-最常見的方式是X-Forwarded-For標頭。 假設您的服務器依賴於此值(可能不應該這樣),則可以很容易地欺騙IP:

req, err := http.NewRequest("GET", "http://example.com", nil)
// ...
req.Header.Add("X-Forwarded-For", "1.2.3.4")
resp, err := client.Do(req)

當然,大多數服務器不會依賴此領域,因為濫用的可能性很大。

如果您要為自己的服務器編寫測試工具,最好的方法是向服務器添加邏輯,以檢查X-Forwarded-For標頭(或類似名稱)是否存在,並覆蓋設置的IP地址。 但是,請確保在生產中禁用此功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM