Code Bye

java中如何防止恶意ip的刷网站点击率

 

在家自娱自乐开发一个java web程序,想到一个问题那就是网上有很多恶意的水军,他们大多数是为了广告而恶意的点击网页,提升浏览量。而我觉得我的web程序应该具有抵御这些恶意水军的方法。我的思路是建立一张数据库表格,利用struts2的拦截器,每次一旦发现有恶意点击就记录下点击者的ip(不知道能否获得MAC,如果是MAC那更好),点击事件并设定恶意次数为1,当他第二次点击的时候我会查看第二次点击的IP地址是否跟第一次相同,如果相同再比较时间,如果时间比较接近(比如10秒以内)那我就将上次的记录的ip的那条数据update一下,将点击事件设为最新的时间,并将恶意次数设为2,如此进行下去直到恶意次数涨到5的时候我就利用拦截器直接屏蔽他的访问。等到30分钟后或者一个小时后我再允许该IP访问系统。
我现在想问第一能否获取MAC地址作为判断是否是同一用户的根据(我感觉这样更加准确),第二我这种思路是否可行,因为我感觉这样会加重服务器的负载,高手们可有更好的方法。

10分
试试java.net.NetworkInterface的
public byte[] getHardwareAddress() throws SocketException

JDK1.6开始支持的

10分
分析  nginx/apache 等日志 , 利用 iptables 拦截
这种的 没必要 让 程序去做
10分
第一,客户端经过NAT网关访问时,只能获得NAT网关的MAC,多个用户共用一个网关
第二,使用内存数据库或key-value存储,记录客户端IP-访问资源-访问时间,会有开销,不是很大
10分
1、mac不好获取
2、可以增加验证码,前端、后台都做校验
3、增加同一IP指定时间范围内访问次数

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明java中如何防止恶意ip的刷网站点击率