我有一个博客聚合网站
故事按访问次数排序
我认为我正面临访问垃圾邮件
因为一些博客的故事在同一秒内通过传出IP地址获得了大量访问
我的网站不允许来自同一个IP的访问;然而,我的访客以某种方式改变他们的ips。
是他们检测此垃圾邮件访问的任何解决方案吗?我想知道Google adSense如何解决这样的问题?
由于
答案 0 :(得分:5)
简短的回答是,如果单一未经验证的访问是改变故事顺序所需的唯一内容,则无法阻止坚定的攻击者。 您可能想要考虑实施注册用户投票系统。
但是,您可以收集多条信息并合并所有信息:
1)用户代理
2)IP地址
3)X-Forwarded-For标题(如果可用)
攻击者通常会很懒惰而不会通过不同的用户代理循环。如果您将系统设置为以特定间隔(而非实时)处理访问信息,则可能会使用相同的用户代理过滤掉同时发生的大量访问。
您可以随时从antiproxy.com等网站下载代理数据库,但事实是,今天大多数计划好的攻击来自僵尸网络节点,这些节点尚未被记录。您的网站完全有可能成为针对异构流量的攻击的目标,这种攻击与普通访问者无法区分。
至少,我建议更改您的实施,以便用户可以对故事进行投票并需要验证码。
答案 1 :(得分:1)
使用PHP,您可以针对IP地址检查$ _SERVER [“HTTP_X_FORWARDED_FOR”]变量,以进一步确保客户端是他所说的人。这将有助于通过某些代理来识别人员。
答案 2 :(得分:1)
我有时会使用这个功能。但正如其他人所说,在百分之百的时间内获得正确的IP可能很困难。
我不记得我从哪里获得了这个功能,但它在互联网上似乎相当普遍。
function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
答案 3 :(得分:0)
您无法可靠地检测到IP。
它可能是通过代理进行的,也可能是欺骗性的。