蒙在股里 发表于 2015-2-3 23:39:23

ASP网页编程之避免网上反复投票的办法(二)

大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧投票|反复   办法二:使用Cookies对象
由于Cookies对象把变量的值保留在阅读器客户端,所以可以依据Cookies保留的IsVoted的值来判别用户是不是投过票。Cookies变量和Session变量一样是公有的,然而假如咱们界说了Cookies变量的保存刻日,则Cookies变量是私有的,但凡从统一台机械上登录的用户在划定的工夫刻日没有到达时,都没法投票,这在必定水平上也能避免重复投票。完成法式流程如图2:




依据实践情形公道地设置Cookies变量的保存刻日的长短,例如设定为10分钟,如许一台机械即便一连投票最多一天也只能投144张票。

此种办法的破绽:在Windows 9x情况下,只需把 Windows\Cookies目次下一切*.txt文件删除,又可反复投票。为了再进一步避免重复投票,上面给出办法三。

办法三:验证IP地址与登录工夫
此办法起首使用 Request.ServerVariables(REMOTE_ADDR)获得用户的IP地址。在Web Server端创立一个尺度的MDB类型的数据库,此数据库有一个表,该表只要两个字段:IP地址和登录工夫。之所以设置登录工夫这个字段,是思索到拨号上彀用户能够共用统一个IP地址,假如一个IP 地址只能投一次票,那末明显不公道。同时,咱们还采取办法二一样的思惟,必需每隔一个设定的工夫段,统一个IP地址才干再次投票。所以这类办法例如法1、办法二在避免重复投票方面要严厉很多。其完成的法式流程如图3:




办法四:小局限查询拜访
这类办法只合用于小局限查询拜访,思惟与办法三不异,只是把办法三中的 IP地址换成可以独一代表用户的字段,如先生证号、任务证号等。这时候创立的MDB数据库只包含两个字段:证件号码与IsVoted(个中IsVoted是逻辑型字段, TRUE暗示已投过票,FALSE暗示还未投票,在建库时一切纪录的IsVoted的值都设为 FALSE)。在投票之前,请求先输出准确的证件号码,然后再判别IsVoted的值。完成这类办法的法式流程如图4:




从办法一到办法四,平安性愈来愈高,避免反复一连投票功效愈来愈强,然而各类办法都有各自的局限性。在使用中,用户应依据实践情形选择适合的办法。假如小局限投票,办法四无疑是最好的;假如在Internet上投票,办法三是最好的。别的一点必需说起的是:固然Application有保留变量的功效,然而咱们没有效到。由于 Application变量是一个全局性变量,假如用Application把IsVoted设为TRUE,则任何用户都没法投票;假如用Application把IsVoted设为FALSE,则任何用户都可以投票,就没有任何提防功效了。
</p>缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。

乐观 发表于 2015-2-4 04:52:34

如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。

分手快乐 发表于 2015-2-4 13:41:05

作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。

飘飘悠悠 发表于 2015-2-5 11:31:27

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

飘灵儿 发表于 2015-2-9 23:08:22

我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。

爱飞 发表于 2015-2-28 04:18:49

Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write

只想知道 发表于 2015-3-4 11:56:29

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

简单生活 发表于 2015-3-8 00:02:21

哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?

深爱那片海 发表于 2015-3-15 17:28:18

作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。

小魔女 发表于 2015-3-17 11:09:45

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:

仓酷云 发表于 2015-3-27 04:28:12

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

柔情似水 发表于 2015-3-29 03:45:09

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

冷月葬花魂 发表于 2015-4-1 04:57:39

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。

小妖女 发表于 2015-4-16 12:11:55

ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。

再见西城 发表于 2015-4-21 15:16:47

不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍

谁可相欹 发表于 2015-4-26 04:11:53

如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:

金色的骷髅 发表于 2015-4-30 20:33:47

如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。

小女巫 发表于 2015-5-1 10:36:09

作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。

精灵巫婆 发表于 2015-5-6 06:11:41

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

若天明 发表于 2015-6-12 01:52:13

下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
页: [1]
查看完整版本: ASP网页编程之避免网上反复投票的办法(二)