源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 801|回复: 17

[相关技巧] 安全校验Session验证码并避免绕开验证码攻击

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2012-1-8 18:58:00 | 显示全部楼层 |阅读模式
校验验证码的Session是否为空或者校验用户输入的验证码是否合法,构造安全表单的关键就是永远不要相信用户的输入 已经记不得是在哪个网站上看到的了,一般情况下对于验证码的校验,大家很容易写成下面这样:
复制代码 代码如下:
<%
If Request.Form("SecurityCode") = Session("SecurityCode") Then
' TODO : Database operations
Else
Response.Write "Security code incorrect!"
End If
%>

验证码图片产生Session("SecurityCode")并保存正确的验证码值,然后获得用户提交的验证码值,然后两个一比对如果一样则表示验证码正确,否则验证码错误。表面上这样的算法没有什么问题,但是对于一种特殊情况则会让验证码形同虚设。
首先我们知道,对于上面的算法有个核心的地方就是我们要访问产生验证码图片的那个文件才会有个保存验证码值的Session,然后才能对用户的输入进行正确的比对,假如有心人构造一个绕开验证码图片文件的Form然后进行提交会得到什么呢?Session("SecurityCode")不存在为空,如果此时用户验证码什么都不输入,这时验证码校验就形同虚设了。好,这里利用漏洞攻击的关键就是验证码的Session,我们很容易就能够让服务器不产生这个Session从而使这样的攻击变成可能。
解决的方法也很容易,校验验证码的Session是否为空或者校验用户输入的验证码是否合法,构造安全表单的关键就是永远不要相信用户的输入。下面采用校验验证码Session和用户输入的双保险办法解决这个安全问题:
复制代码 代码如下:
' str为要校验的验证码,len为验证码长度
Function IsSecurityCodeValid(str, len)
IsSecurityCodeValid = Not CBool( _
IsEmpty(str) Or CStr(str)="" Or Len(str)<len)
End Function
If IsSecurityCodeValid(Request.Form("SecurityCode"), 4) AND _
IsSecurityCodeValid(Session("SecurityCode"), 4) AND _
Request.Form("SecurityCode") = Session("SecurityCode") Then
' TODO : Database operations
Else
Response.Write "Security code incorrect!"
End If
回复

使用道具 举报

27

主题

2万

回帖

331

积分

中级会员

Rank: 3Rank: 3

积分
331
发表于 2022-8-17 09:47:49 | 显示全部楼层
先把创新班才能下班才能下班
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

194

积分

注册会员

Rank: 2

积分
194
发表于 2022-9-22 07:31:56 | 显示全部楼层
下载来瞧瞧
回复 支持 反对

使用道具 举报

3

主题

2万

回帖

301

积分

中级会员

Rank: 3Rank: 3

积分
301
发表于 2022-10-1 13:32:08 | 显示全部楼层
dfdsafdsfdsfdsf
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-10-24 02:07:21 | 显示全部楼层
sdsadsadsadf
回复 支持 反对

使用道具 举报

1

主题

1万

回帖

93

积分

注册会员

Rank: 2

积分
93
发表于 2023-1-7 13:27:06 | 显示全部楼层
还有什么好东西没
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-2-17 15:56:38 | 显示全部楼层
额风风风微风微风违法
回复 支持 反对

使用道具 举报

7

主题

2万

回帖

288

积分

中级会员

Rank: 3Rank: 3

积分
288
发表于 2023-3-28 23:03:05 | 显示全部楼层
这个源码不错啊
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

68

积分

注册会员

Rank: 2

积分
68
发表于 2023-9-10 01:19:56 | 显示全部楼层
呵呵呵呵呵呵
回复 支持 反对

使用道具 举报

4

主题

1万

回帖

60

积分

注册会员

Rank: 2

积分
60
发表于 2023-10-8 07:50:23 | 显示全部楼层
撒旦撒旦撒擦擦擦擦
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-22 03:32 , Processed in 0.086682 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表