在我的网站里,用ASP编了一个在线投票程序,用户投票一次记录用户的IP到数据库中,并限制每个IP每次只能投票一次,但是发现有人恶意投票,可能是用了某些程序,每次投票的ip都不一样,例如用192.168.0.20,192.168.0.21,192.168.0.22,192.168.0.23......等等不同的IP重复的投票。
请问我应该如何修改我的程序,或者用别的办法防止这种恶意的投票。
------解决方案--------------------
IP是辨认用户的唯一凭证
IP变化基本不好防了
除非你要用户注册成会员,只有会员才能投票
------解决方案--------------------
一、注册用户才能投票
二、写入一个cooike,已经有的不能再投
三、加入验证码,防止机器自动投票
也只有这几种办法了
------解决方案--------------------
ip限制不合适,很多公司或者单位、网吧等,机器都没有独立的ip,出去访问公网的时候ip都是一个,还是用验证码 + cookie 吧,用户每天对每一个需要投票的产品只需投票你一次
------解决方案--------------------
asp可以获取、MAC地址吗?
ip改的方便 MAC地址改的就很麻烦啊,用MAC
或用硬盘 cpu的序列号
------解决方案--------------------
用javascript获得mac地址..存入到数据库.
每次投票前检查MAC是否存在于数据库
获得MAC地址代码.
<script>
function getIP(bat,txt){
var fso=new ActiveXObject( "Scripting.FileSystemObject ")
var f=fso.createTextFile(bat,1);
f.writeLine( "ipconfig/all> "+txt);
f.Close();
var wsh=new ActiveXObject( "wscript.shell ");
wsh.run(bat)
setTimeout(display,1000)
function display(){
var f=fso.openTextFile(txt);
while(!f.AtEndOfStream){
line = f.readLine();
if(line.indexOf ( "Physical Address ")!=-1){
alert(line);
break;
}
}
f.Close();
fso.DeleteFile(bat);
fso.DeleteFile(txt);
}
}
function set()
{
getIP( "qswhIP.bat ", "qswhIP.txt ")
}
</script>
<input type= "button " value= "ss " onclick= "set() ">