簡體   English   中英

使用與HTTP_X_FORWARDED_FOR類似的方法在laravel中獲取用戶IP地址

[英]Get User IP address in laravel with similar method to HTTP_X_FORWARDED_FOR

我需要獲取用戶的IP地址”。

我找到了這篇文章如何在Laravel 5.1中獲取客戶端IP地址?

上面提到的文章使用了Request::ip();

但是,此方法返回我的服務器IP地址。 據我從其他來源了解到,這是在站點為localhost時發生的-但是該站點是托管的,並且位於服務器上。

這個站點是在線的,但它可能是localhost ,因為該站點可能位於其自己的服務器上(我沒有服務器配置方面的經驗,只能知道這是不是真的)。

當我連接到數據庫主機時,我也使用localhost引用,而不是使用mysql.phpmyadmin.hosting.com作為數據庫主機。 因此,我的猜測是, Request::ip(); 返回服務器ip,因為該站點以某種方式位於localhost。

但是,如果我使用$ _SERVER ['HTTP_X_FORWARDED_FOR']; 我得到正確的IP地址。

現在我的最后一個問題使用安全嗎? 還有使用Laravel函數發出此請求的另一種方法嗎?

據我了解,$ _ SERVER ['HTTP_X_FORWARDED_FOR']; 根據如何在PHP中獲取客戶端IP地址,可能會有安全漏洞

我可以使用$_SERVER['HTTP_X_FORWARDED_FOR']; 安全地擔心嗎? 如果沒有,我可以采取其他方法安全地獲得用戶IP地址嗎?

X-Forwarded-For的風險在於,用戶可以自己創建標頭,從而傳遞他們希望的任何IP。

解決方案是僅在REMOTE_ADDR是您的受信任代理的頭時信任頭。 有一個Laravel軟件包 ,可讓您強制執行此限制。

暫無
暫無

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

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