前几天一个活动限制了IP,是还是出现了刷票的现象,现在把解决办法说说一下
第一:
限制页面来源,只允许网站内指定页面跳转到业务处理页面
String reURL = request.getHeader("Referer");
如果reURL不是当前指定的页面,或者包含指定域名,则认为是不正当投票
第二:
记录代理信息:
String agentIP = request.getHeader("x-forwarded-for");
if(agentIP == null || agentIP.length() == 0 || "unknown".equalsIgnoreCase(agentIP)) {
agentIP = request.getHeader("Proxy-Client-IP");
}
if(agentIP == null || agentIP.length() == 0 || "unknown".equalsIgnoreCase(agentIP)) {
agentIP = request.getHeader("WL-Proxy-Client-IP");
}
System.out.println("代理IP为:"+agentIP+"真实IP为:"+request.getRemoteAddr());
但是很奇怪的是还是不能杜绝一些人的刷票,规则是每个IP每天只能投票一次,在投票的时候先会到一个输入姓名,电话,验证码的地方才能到处理页面。我做了以上设定之后,还是有人可以绕过js验证(这个可以理解),但是不明白为什么还是有写数据明显是刷票,但是 String reURL = request.getHeader("Referer"); 获取是从本站的指定页面,非常不理解,是不是现在的刷票工具链这个 request.getHeader("Referer");也可以伪造?@皮总 @红薯 @逝水fox @蟋蟀哥哥 ,各位给指点下,谢谢
忘了发网址,http://syds.kobelco-jianji.com/10828/大家看看这个刷票是怎么实现的
来源:oschina
链接:https://my.oschina.net/u/267431/blog/83250