2013-03-21 124 views
4

我有一個IIS託管ASP.NET的WebAPI應用程序和IM使用ServerVariables["REMOTE_ADDR"]獲取客戶端地址和識別用戶:客戶端日誌中,我會產生包含客戶端IP的cookie。在隨後的調用中,我將從cookie中獲取IP,並驗證它是否正確。我可以相信,從ServerVariables [「REMOTE_ADDR」]返回的值

我可以信任該地址嗎,或者ServerVariables["REMOTE_ADDR"]可以返回161.121.222.223和客戶真的是別的地方?

回答

3

是的,它是安全的。它是TCP連接的源IP,不能通過更改HTTP標頭來替代。

你可能想擔心的一種情況是,如果你在一個反向代理的後面,在這種情況下REMOTE_ADDR將永遠是代理服務器的IP,並且用戶IP將被提供在一個HTTP頭中(比如X -Forwarded-FOR)。但對於閱讀REMOTE_ADDR的正常用例很好。

摘自:Is it safe to trust $_SERVER['REMOTE_ADDR']?

0

是的,它是可靠的。它不能被客戶端修改,除非通過簡單地連接另一個IP。 (代理)

相關問題