|
ASP世界
用ASP+ACCESS制作附加码验证
作者:易木计算机网络工作室 转自:http://www.lanx.cn/
我对安全方面还是比较关注的,我以前做4位数的附加码,做了10000张图片!由于不好管理,而且这样的小文件每个文件占用的空间比实际大小大得多(这就是一个文件至少要占用一个簇,例如一个图片是700字节,硬要占用4K字节,划不来)。
现在好了,我想到了新技术,而且已经实现了,并且有很好的防某些读取图片附加码软件的功效。 是怎样实现的呢??其实就是把附加码的图片存进数据库。那么有人会问哒,10000张图片好难做啊!确实,可是我有网页里面做图片的组件啊,用一个循环就行了,而且我已经做好了,可以点击下面的“访问/下载”下载到。 下面,将各个文件的代码写一下: 显示时使用如下语句: <SCRIPT language=javascript> document.write("<img src=addnum1.asp?id=!!!&random=",Math.random()," width=36 height=12 border=0 alt=’请在左边的框中输入此数字
如果无法显示,请刷新本页
附加码是为了避免有不良用户使用程序猜测用户密码,特提供密码保护附加码,为用户提供更安全的服务。
不用记附加码,附加码只对当次服务有效,附加码的有效期为15分钟。’>") </SCRIPT> 显示附加码使用javascript,其理由是每次打开页面都能更改随机数,以便浏览器能再次从服务器获取新的附加码图片,以免出现服务器记录的附加码改变,而客户端显示图片未变(这里感谢腾讯公司使我感到启发) addnum1.asp: <% Response.Expires = 0 Response.Buffer = TRUE Response.ContentType = "image/jpeg" number1=year(date)+month(date)+day(date)+hour(time)+minute(time)+second(time) number2=(number1 * number1 + 1) * request("random")+number1 session("addnum" & request("id"))=right(number2,4) set conn=Server.CreateObject("ADODB.Connection") conn.open "driver={Microsoft access Driver (*.mdb)};dbq=" & Server.MapPath("addnum.mdb") set show=conn.Execute("Select top 1 image from image where id=’" & session("addnum" & request("id")) & "’") Response.BinaryWrite show("image") show.close set show=nothing conn.close set conn=nothing Response.end %> 最后就是addnum.mdb了 验证时还是使用如下语句 <% if request("addnum!!!")<>session("addnum!!!") or session("addnum!!!")="" then session("addnum!!!")="" %> 验证失败后的页面显示 <%else%> 验证成功后继续其他验证 <%end if%> 注意,以上蓝色部分!!!显示字符不同,即可在同一页面同时使用多个附加码(多表单页面)。
|