PHP投票系统如何防刷票
来源:互联网 发布:c语言日志库log4c 编辑:程序博客网 时间:2024/05/06 05:10
源地址:http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2013/0117/11944.html
生活中,不少人都会遇到需要投票。但往往投票的地方也是薄弱的,可能对投票来源没有验证的话,将会导致刷票,严重的话还会导致网站沦陷。
下面这篇文章就是讲如何防刷票,虽然不是100%能防止,但是也能从根源上杜绝了一大批菜鸟对系统的破坏。我就直接转过来了.
刚刚做了一个刷票系统,感触不少,刚开始也是遇到好多好多刷票的。经过了一次又一次的改正,基本上杜绝了刷票程序进行的刷票。下面把具体刷票方面列举出来:
1.首先一个复杂的验证码是非常非常重要的,刚开始用了一个很简单的小验证码,根本躲不过刷票程序的破解。所以在网上找了一个很复杂的验证码,连人工投票都得刷新两下。有需要的可以留下邮箱,我会在第一时间发过去。
2.因为投票都是实名制的,填写身份证号码的,所以身份证号码的验证也是必要的。首先身份证号码必须为18位(一代身份证现在基本上见不到了),前17位必须为数字。代码现在写出来一个参考的 if(((strlen($sfz))!=18 and (strlen($sfz))!=15) or (!is_numeric(substr($sfz,0,strlen($sfz)-1)))) “$sfz”是接收到的身份证号码,这条语句后面可以添加一个提示方式。另外在投票之前验证当前身份证是否已经投过票,否则不予计票。
3.如果特别正式的可以使用注册后再进行投票的机制,注册的时候也应该对注册信息进行判断,注册的时候必须添加验证码进行限制。
4.程序的的安全机制也很重要的,如果使用面向对象的程序,必须把计票的函数设为private,防止SQL注入!
5.另外就是使用cookie方式在客户端进行时间限制,这种方式是防君子不防小人,专业刷票团队肯定首先会想到这一点。但还是建议加上。
6.还有一个就是IP限制,比如每个IP只允许投100票(考虑到一些公司使用一个大局域网,公网IP都是用的一个,否则可能会出现不公平的现象)。
7.最后一个也是最重要的,验证码输入框那里用异步通信进行实现。网页初始验证码是不显示的,点击验证码输入框再显示出来验证码,而投票成功之后马上unset验证码的SESSION。这样就可以避过绝大多数刷票机。
本文大概提供了一些常规的思路,所谓防人之心不可无,你不能确保每个用户输入的都是安全的。最后说一句:检查的时候记得白名单,这是必要的。
- PHP投票系统如何防刷票
- php--简单投票系统
- php投票系统
- PHP 投票系统
- php和Ajax 投票系统
- php模块之投票系统
- 投票系统防刷票
- 简易在线投票系统(php)——发布投票页面
- 简易在线投票系统(php)——投票页面
- 简易在线投票系统(php)——投票结果页面
- 投票系统-如何限制单位时间内投票次数
- 投票系统如何防止一个用户多次投票
- PHP+MySql简单投票系统代码
- PHP做的一个简单投票系统
- 投票系统投票界面
- PHP 投票
- 投票系统
- 投票系统
- 字节对齐&内存管理
- eclipse 导入全部Android源码
- Struts2通过commons-fileupload实现文件上传
- oracle中日期类型与unix 时间戳的转换
- 思科系统路由器VPDN配置
- PHP投票系统如何防刷票
- 字符串,数组,集合,array,nsmutablearray, nsdictionary,nsset
- Struts2 commons-fileupload 在上传2M以上文件出现异常解决方法
- 探讨继承与实现
- VirtualBox 中压缩虚拟机文件的方案
- OpenCV学习笔记(五十九)——marker检测识别"Master OpenCV"chp.2
- ruby流程控制语句
- 样本收集问题
- 图解HTTPS