gpt4 book ai didi

php - 使用类似于 HTTP_X_FORWARDED_FOR 的方法在 laravel 中获取用户 IP 地址

转载 作者:行者123 更新时间:2023-12-04 16:35:11 25 4
gpt4 key购买 nike

我需要获取我的用户 IP 地址'。

我找到了这篇文章 How to get Client Ip Address in Laravel 5.1?

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

但是,此方法返回我的服务器 IP 地址。据我从其他来源了解到,当网站是本地主机时会发生这种情况 - 但该网站已托管并且在服务器上运行。

这个站点是实时在线的,但它可能引用 localhost,因为该站点可能位于它自己的服务器上(我没有任何服务器配置方面的经验,不知道这是真的还是不是,只是一个猜测)。

当我连接到数据库主机时,我也使用 localhost 引用,而不是像 mysql.phpmyadmin.hosting.com 这样的东西作为数据库主机。因此,我的猜测是,Request::ip(); 返回服务器 ip,因为该站点以某种方式位于本地主机上。

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

现在是我的最后一个问题:使用它安全吗?还有其他方法可以使用 Laravel 函数来发出此请求吗?

据我所知,$_SERVER['HTTP_X_FORWARDED_FOR'];可能有安全漏洞,根据 How to get the client IP address in PHP? .

我可以放心地使用 $_SERVER['HTTP_X_FORWARDED_FOR']; 吗?如果没有,我还能采取什么其他方式来安全获取用户 IP 地址?

最佳答案

X-Forwarded-For 的风险在于用户可以自己创建 header ,从而传递他们想要的任何 IP。

解决方案是仅当 REMOTE_ADDR 是您信任的代理时才信任 header 。有一个 Laravel package让您可以强制执行此限制。

关于php - 使用类似于 HTTP_X_FORWARDED_FOR 的方法在 laravel 中获取用户 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41748523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com