保护IP检查php


Securing IP check php

我有

$result = mysqli_query($mysqli,"SELECT * FROM ".MYSQLBTCTABLE." WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "' AND date = '".date("Y-m-d")."' AND time = '".date("D")."'") or die(mysqli_error());

我如何保护$_SERVER['REMOTE_ADDR'],使其不仅检查用户ip/proxy,还检查socks ip,使他们不会通过更改ip滥用我的代码?

我还发现了这个代码:

                function getRealIpAddr()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
    {
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))   //to check ip is pass from proxy
    {
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
      $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

如果我放WHERE ip = '".($ip)."',它会这样工作吗?

在常见情况下不能这样做

  • 您不能确定用户是否正在使用代理:它可以是匿名代理
  • 你不能确定他是否在使用电脑设备
  • 你不能确定他是人:这可能是通过cURL或类似的东西请求的

这就是互联网的现实。你不能依赖任何来自客户端的信息。如果您怀疑用户更改了他的IP地址,则将关键部分隐藏在身份验证之后。因此,您将能够通过用户在web应用程序中的登录来识别用户。