我正在建立我的第一个网站.它是一个在线房地产代理商.用户可以创建个人资料,然后插入广告并上传图片.
我被告知我应该检测多次记录尝试以防止暴力攻击.好吧,使用以下代码我检测到IP:
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{ $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];} else
{ $ip=$_SERVER['REMOTE_ADDR'];}
Run Code Online (Sandbox Code Playgroud)
系统会在一定延迟内计算错过的记录尝试次数,并在数据库中保留禁止列表.它很棒......至少在我自己测试的时候!
然后,当我被告知"通过虚假IP提防盗版"时,我得到的印象是我上面提到的保护系统无效.
有 :
1)包含可以隐藏其真实IP的代理的pirat可用的软件
2)网络上的代理也可以隐藏真实的IP.
1)和2)有什么区别?
我想知道如何使用代理以及它们在非法行为方面能够做些什么
非常感谢.
任何人都可以更改ip,proxy,vpn ....
我使用此函数来检测REAL IP地址是否有效:
function getrealip() {
if (getenv('HTTP_CLIENT_IP') && long2ip(ip2long(getenv('HTTP_CLIENT_IP')))==getenv('HTTP_CLIENT_IP') && validip(getenv('HTTP_CLIENT_IP')))
return getenv('HTTP_CLIENT_IP');
if (getenv('HTTP_X_FORWARDED_FOR') && long2ip(ip2long(getenv('HTTP_X_FORWARDED_FOR')))==getenv('HTTP_X_FORWARDED_FOR') && validip(getenv('HTTP_X_FORWARDED_FOR')))
return getenv('HTTP_X_FORWARDED_FOR');
if (getenv('HTTP_X_FORWARDED') && long2ip(ip2long(getenv('HTTP_X_FORWARDED')))==getenv('HTTP_X_FORWARDED') && validip(getenv('HTTP_X_FORWARDED')))
return getenv('HTTP_X_FORWARDED');
if (getenv('HTTP_FORWARDED_FOR') && long2ip(ip2long(getenv('HTTP_FORWARDED_FOR')))==getenv('HTTP_FORWARDED_FOR') && validip(getenv('HTTP_FORWARDED_FOR')))
return getenv('HTTP_FORWARDED_FOR');
if (getenv('HTTP_FORWARDED') && long2ip(ip2long(getenv('HTTP_FORWARDED')))==getenv('HTTP_FORWARDED') && validip(getenv('HTTP_FORWARDED')))
return getenv('HTTP_FORWARDED');
$ip = htmlspecialchars($_SERVER['REMOTE_ADDR']);
/* Added support for IPv6 connections. otherwise ip returns null */
if (strpos($ip, '::') === 0) {
$ip = substr($ip, strrpos($ip, ':')+1);
}
return long2ip(ip2long($ip));
}
Run Code Online (Sandbox Code Playgroud)
有关X-Forwarded的更多信息