我们最近受到这个 Firefox 插件的打击。它在标头中发送一个假 IP,因此当我们的 nginx Web 服务器获取 IP 时,它是一个假 IP。
有没有办法获取真实的 IP 地址或阻止安装了此插件的请求?
我们最近受到这个 Firefox 插件的打击。它在标头中发送一个假 IP,因此当我们的 nginx Web 服务器获取 IP 时,它是一个假 IP。
有没有办法获取真实的 IP 地址或阻止安装了此插件的请求?
在任何 HTTP 标头中实际上都没有客户端 IP 条目。只有一些非官方的代理头被添加到请求中,以便代理服务器可以告诉您连接客户端的真实 IP(因为 tcp 套接字只会显示代理服务器的 IP 地址)。
您链接到的插件添加这些代理标头,通过向请求添加X-Real-IP: 1.2.3.4
或X-Forwarded-For: 1.2.3.4
标头来“伪造”代理请求。但是没有人强迫你使用那个 IP 地址(可能是假的,就像1.2.3.4
这里的例子),你总是可以使用发起连接的套接字的 IP 地址——如果他使用提到的,这将是客户端的真实 IP 地址插入。
在location
nginx 配置部分中,您可以通过$remote_addr
变量获取套接字 IP 地址。要检索“假”IP 地址,您可以使用$http_x_forwarded_for
或$http_x_real_ip
变量。
如果您使用任何应用程序/cgi 后端,您通常可以检查完整的标头和套接字 IP 地址(即在 PHP 中您应该检查$_REQUEST
和$_HEADERS
变量)