摘要:
【原创】 随着网络的发展,越来越多的评选活动采取了网络投票的制度,也因此刷票这个概念便出现在了大众面前。作为一个程序员如何维持网络投票的公正和严谨,如何尽可能的避免刷票出现的几率成为了开发此类程序不得不考虑的问题。就目前而言着实是没有一个完美的解决方案。现行的所有机制其实都只是做到了“防君子不防小人”。
刷票分为两个大类:一类是人为主体,通过人力去刷票。另一种更为可怕,通过特定的刷票机去代替人力完成令人恐怖的批量刷票。
现行的防刷票机制
1、验证码:确切的说验证码的出现不是针对于人,而是针对于机器。通过复杂度和识别难易度的控制来阻拦掉一部分刷票机,从而减少刷票的发生。但随着软件技术、识别技术的发展越来越多的验证码面对着先进的刷票软件也失去了其防范的作用。
2、Cookie:这个应该是很老很原始的一种方式来防止刷票了。对用户的每次投票进行Cookie的记录,当下次投票时进行检测发现Cookie中已经存在了此投票记录则禁止此次投票。很遗憾的是此方式对于大多数网民已经失去作用(当然除了特别嫩的菜鸟外)。只需要通过IE清掉Cookie限制就将解除。 阅读全文
摘要:
在第二章中已经对前台处理部分进行了编码,此章将探讨后台(.NET,C#为例)部分的编码。从第一章的构架分析:后台的任务主要是构造符合前台解析规则的“消息协议”。接下来我们先分析这种协议的特点:
1、需要有头信息(必须),用于对请求状态的标示。包括 _Success,_Fail,_Action 三个状态
2、必须有自定义信息,用于进行用户自定义数据的传送
3、对头信息中的标示采用属性方式设定,对于自定义信息中的数据必须能实现:添加、删除单个
删除所有、重设单个的功能
4、最后必须输出标准的Json字串
根据以上特点便可以编码出这种消息协议对象(JsonInfo)。因为要使用Json作为传输介质,因此
我们必须引用“Newtonsoft.Json” 即Json.Net dll组件。为了让我们的JsonInfo能够支持更多的对象
序列化,还必须考虑弥补Json.Net对DataSet和DataTable的不足。我们需要增加这两种解析方式。
从上面的四点可知,不论是头信息还是自定义信息,其实都是Key/Value的形式,我们可以通过 阅读全文