代理和盗版 - 网站安全

时间:2012-10-30 08:58:53

标签: php proxy piracy

我正在建立我的第一个网站。它是一个在线房地产代理商。用户可以自行创建个人资料,然后插入广告并上传图片。

我被告知我应该检测多次记录尝试以防止暴力攻击。好吧,使用以下代码我检测到IP:

if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{ $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];} else
{ $ip=$_SERVER['REMOTE_ADDR'];} 

系统会在一定延迟内计算错过的记录尝试次数,并在数据库中保留禁止列表。 它的效果很好......至少在我自己测试的时候!

然后,当我被告知'谨防通过虚假IP进行盗版'时,我得到的印象是我上面提到的保护系统无效。

有:

1)pirats可用的软件包含可以隐藏其真实IP的代理

2)网络上的代理也可以隐藏真实的IP。

1)和2)之间有什么区别?

我想知道如何使用代理以及他们在非法行为方面可以做些什么

  • 可以随意改变它是Ip吗?
  • 中国或俄罗斯的某个人可以“模拟”西欧或美国的IP吗?
  • 我可以做的比检查任何可疑活动所做的更多吗?

非常感谢。

3 个答案:

答案 0 :(得分:5)

任何人都可以更改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));
}

X-Forwarded

的更多信息

答案 1 :(得分:2)

正如Dagon所说,IP地址是识别用户的一种相当弱的方式,黑客几乎肯定不会使用他们自己的IP地址,而是使用被盗的机器或僵尸网络;另一方面,许多企业用户可能看起来都来自同一个IP地址,如果有人忘记密码,您很容易就会阻止该建筑物/公司的每个用户。

防止暴力攻击的第一道防线是拥有强大的密码策略;通常,这被假定为至少7个字符,至少有一个数字和一个标点符号。这通常会使用户烦恼,并使他们讨厌您的网站。

下一个防守 - 如果你认为你真的有风险 - 是CAPTCHA;这让用户更加讨厌你。

最重要的是:如果你正在建立你的第一个网站,我会看一个现成的框架,而不是自己发明一切。考虑PEAR:auth

答案 2 :(得分:2)

代理服务器可以屏蔽你的ip。它将发送您的请求,就好像它是它,然后发回给您的回复。

  

可以随意改变它是Ip吗?

不,他们不能只是将他们的ip改为他们喜欢的任何东西。但他们可以掩饰它。

  

中国或俄罗斯的某些人可以“模拟”西欧或美国的IP吗?

  

我可以做的比检查任何可疑活动所做的更多吗?

如果您使用强力技术检测到某些用户名使用错误的密码登录太多次,您可以使用sleep功能减慢他的速度。这种技术你不会切断使用代理而没有不良意图的用户,你会减慢暴力破解。

if($wrongAttempts > 5) sleep(3000);

if($password == $_GET[pass]) 
{
   // ...
}

你也可以开始包括验证码图像以提高安全性或阻止帐户一段时间。