我有
$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)."'
会这样吗?
答案 0 :(得分:2)
在常见情况下你不能这样做
cURL
或类似的东西要求这就是互联网的现实。您不能依赖来自客户端的任何信息。如果您怀疑用户更改了他的IP地址 - 那么隐藏身份验证后面的关键部分 。因此,您将能够通过Web应用程序中的登录识别用户。