[英]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.