在ASP中使用PIL实现反自动化

我正在尝试创建一个反自动化功能以防止脚本 通过在我们网站上运行报告,要求用户输入代码 从图像(例如Yahoo电子邮件注册或网络解决方案Whois 搜索). 我在ASP页面中使用Python作为脚本语言,并使用 PIL生成图像. 该代码存储到会话变量中, 用于检查用户的条目. 第一次工作正常 周围,但是我遇到的问题是页面没有 如果用户返回到它,请正确刷新. 它只是返回空白 页. 任何帮助将不胜感激. 请参阅下面的代码: <%@语言= python%>

<头> Python ASP页面 <% 导入随机 进口PIL 导入图像,ImageDraw,ImageFont def密码(n): """返回长度n的伪随机数. #初始化空字符串 s ="" #生成随机数,转换为字符串并附加到S 对于X范围(n)的X: i = random.randint(1,9) s = s + str(i) 返回s def passwassimg(p): """"生成文本p的图像.""" #打开现有图像 img = image.open('c:\\ inetpub \\ wwwroot \\ begaspfiles \\ ima ges ges \\ temppassword.gif') #创建新图像 imgsize =(150,20)#图像大小 蓝色=(102,102,255)#图像颜色 白=(255,255,255)#字体颜色 newimg = image.new(" rgb",imgsize,blue) #设置字体 arial = imagefont.load('c:\\ pythonscripts \\ piltest \\ fonts \ \ arial BOLD_14_100.PIL') #创建ImageDRAW对象写文本 draw = imagedraw.draw(newimg) draw.text((40,-1),p,fill = white,font = arial) #通过旧图像粘贴使用密码的新图像 img.paste(newimg) #保存图像并返回true如果成功 #注意:img.save返回无 imgpath ='c:\\ inetpub \\ wwwroot \\ begaspfiles \\ images \\ passwo rd.gif' 如果img.save(imgpath): 返回0 别的: 返回1 %> <身体> <% p =密码(7) session.setValue("键",p) wress.write("

") // **************************************************************** //检查已写入会话变量的检查 - 删除 生产 // **************************************************************** response.write(session(" key")) response.write("

") response.write("

测试密码:

") if(passwordimg(p)): response.write("

密码

") 别的: response.write("无法生成

密码图像.

") response.write("
") response.write("
") response.write(" ") response.write("
") %>

# 回答1

道格(Doug R)写道: 也许用户浏览器正在缓存图像/页面? 尝试独特的图像 每次名称,或将日期/时间戳记到图像名称 (image.gif?blah = 12345). 首先,如果您正在使用IE,您也可以 禁用浏览器中的页面/图像缓存(您可以在Mozilla中执行此操作 我认为和其他浏览器). 杰伊
# 回答2

do dodeydeydedyde@comcast.net(Doug r)写道: [...] 这就是验证码. http://www.captcha.net/ 您可能想注意 在上面的网站上列出了几个程序 可以破解您在谈论的验证码,大约80-90% 准确性. 因此,如果您有坚定的攻击者,您可能更喜欢 他们建议的其他计划之一. 约翰
# 回答3

感谢您的建议和参考网站. 道格
# 回答4

我在这里看到麻烦. 如果两个用户在彼此的password.gif上踩踏怎么办? 使用应解决您的唯一文件名(请参阅模块" tempfile") 缓存问题. 最好的, Miklós - - PrisznyákMiklós --- Jegenye 2001 bt. (MailTo:JE *********@Parkhosting.com) 塔纳卡达斯(Taácsadás 自定义软件开发,咨询http://jegenye2001.parkhosting.com Doug r 在消息中写道 新闻:52 ************************************@posting.google.c om ... [删除代码]

标签: python

添加新评论