防止网上重复投票的方法

来源:asp之家 时间:2009-06-01 12:31:00 

方法一:利用Cookies对象

因为Cookies对象把变量的值保存在浏览器客户端,所以可以根据Cookies保存的IsVoted的值来判断用户是否投过票。Cookies变量和Session变量一样是私有的,但是如果我们定义了Cookies变量的生存期限,则Cookies变量是公有的,凡是从同一台机器上登录的用户在规定的时间期限没有达到时,都无法投票,这在一定程度上也能防止反复投票。根据实际情况合理地设置Cookies变量的生存期限的长短,例如设定为10分钟,这样一台机器即使连续投票最多一天也只能投144张票。

此种方法的漏洞:在Windows 9x环境下,只要把 Windows\Cookies目录下所有*.txt文件删除,又可重复投票。

方法二:验证IP地址与登录时间

此方法首先利用 Request.ServerVariables(REMOTE_ADDR)取得用户的IP地址。在Web Server端建立一个标准的MDB类型的数据库,此数据库有一个表,该表只有两个字段:IP地址和登录时间。之所以设置登录时间这个字段,是考虑到拨号上网用户可能共用同一个IP地址,如果一个IP 地址只能投一次票,那么显然不合理。同时,我们还采用方法一同样的思想,必须每隔一个设定的时间段,同一个IP地址才能再次投票。

方法三:小范围调查

这种方法只适用于小范围调查,思想与方法三相同,只是把方法二中的 IP地址换成可以唯一代表用户的字段,如学生证号、工作证号等。这时建立的MDB数据库只包括两个字段:证件号码与IsVoted(其中IsVoted是逻辑型字段, TRUE表示已投过票,FALSE表示还未投票,在建库时所有记录的IsVoted的值都设为 FALSE)。在投票之前,要求先输入正确的证件号码,然后再判断IsVoted的值。

  从方法一到方法三,安全性越来越高,防止重复连续投票功能越来越强,但是各种方法都有各自的局限性。在应用中,用户应根据实际情况选择合适的方法。如果小范围投票,方法三无疑是最好的;如果在Internet上投票,方法二是最好的。另外一点必须提及的是:虽然Application有保存变量的功能,但是我们没有用到。因为 Application变量是一个全局性变量,如果用Application把IsVoted设为TRUE,则任何用户都无法投票;如果用Application把IsVoted设为FALSE,则任何用户都可以投票,就没有任何防范功能了。

标签:Cookies,投票,ip
0
投稿

猜你喜欢

  • XHTML1.0规范:您是否为img图片标签赋予alt属性

    2009-09-21 11:11:00
  • 关于MySQL中隐藏空间的问题

    2009-07-30 08:15:00
  • 浏览器用户体验:Firefox初体验 VS The world

    2008-08-02 11:58:00
  • 如何提升JavaScript的运行速度(函数篇)

    2010-05-17 13:27:00
  • ASP codepage 页面编码使用说明

    2011-03-03 11:24:00
  • 小议sqlserver数据库主键选取策略

    2011-10-24 19:51:30
  • 一个asp版的xheditor上传图片服务器端文件

    2009-12-21 14:18:00
  • 可以让程序告诉我详细的页面错误和数据库连接错误吗?

    2009-11-01 18:01:00
  • Firefox下正则诡异问题

    2009-08-03 14:03:00
  • ASP 连接mysql信息(strConnString)

    2009-10-29 12:02:00
  • 在Oracle中向视图中插入数据的方法

    2009-02-28 10:42:00
  • asp利用xmlhttp抓取特定网页内容例子

    2008-10-10 12:58:00
  • MySql节点管理安装步骤

    2010-10-14 14:13:00
  • ADO组件之分页程序详解

    2008-10-09 12:28:00
  • border:none;与border:0;的区别

    2009-11-27 19:04:00
  • 解析:安装 MySQL时如何选择安装软件包

    2008-12-31 17:15:00
  • WEB2.0网页制作标准教程(8)CSS布局入门

    2007-09-11 13:21:00
  • oracle用什么SQL语句判断表存不存在

    2010-07-23 13:23:00
  • 如何把URL和邮件地址自动转换为超级链接?

    2009-11-02 20:22:00
  • 如何用css制作有趣的按钮

    2008-03-17 13:54:00
  • asp之家 网络编程 m.aspxhome.com