保护IP检查php

时间:2013-11-25 14:11:21

标签: php security proxy ip

我有

$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)."'会这样吗?

1 个答案:

答案 0 :(得分:2)

在常见情况下你不能这样做

  • 您无法确定用户是否正在使用代理:它可以是匿名代理
  • 您无法确定他是否使用计算机设备
  • 你无法确定他是否是人类:可能是cURL或类似的东西要求

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