反SPAM新思路—换Z-BLOG的验证码!
近期,我们Z-BLOGGER群体在思考如何阻止SPAM,对于强大的服务器解决方案,虽然理想,但我们却无法承担。于是,我们决定从SPAMMER的角度寻找解决方案。
对于了解SPAM软件基本原理的朋友们,你们可能知道,它主要是通过[搜索目标]、进入网站、扫描验证码、OCR识别、填写表单、POST这几个步骤进行的。我们可以针对每一步进行防范。当前,我认为比较实际的防范措施是防止SPAM软件成功地进行验证码的OCR识别。
Z-BLOG自带的验证码功能相对较弱,其干扰点几乎不存在,使得验证码中的数字很容易被分析出来。我们的解决方案是——更换验证码程序。
我目前正在使用一个从月光留言本中挖掘出来的验证码程序,并进行了适当的修改以适应Z-BLOG。我认为这款验证码程序对于软件OCR识别来说,具有一定的难度,至少可以为我们换取一时的安宁。这只是一个权宜之计。如果这款验证码程序得到广泛应用,必然会有高手来破解。
最好的办法还是由官方负责,建立一个强大的服务器。有时候,我认为商业化或适当引进投资也是不错的选择。目前,我们正在测试这款验证码程序的效果。自3月28日晚开始至今(07月3日),共收到一个SPAM(包括被拦截的)。这个SPAM的内容与其他SPAM不同,我怀疑它不是来自那些垃圾SEO网站。
他用的验证码是原版的,换验证码的效果还在观察中。在`c_validcode.asp`代码中,我们可以看到,验证码的生成过程包含了大量的细节处理,如随机字符的生成、图像数据的编码以及字符的干扰等。
代码首先定义了验证码的一些基础参数,如验证码的位数范围、杂点出现的概率、干扰次数以及字符和背景的颜色等。接着,它使用了一个名为`Com_CreatValidCode`的子程序来生成验证码图片。
在`Com_CreatValidCode`子程序中,代码首先随机生成验证码的位数,然后设置图像的大小和颜色。接下来,它定义了一些包含验证码字符信息的数组,并随机生成字符和杂点。它将字符和杂点以二进制形式写入响应,生成了最终的验证码图片。
除了生成验证码,代码还包含了一些其他的子程序,如`pcd_doubter`用于干扰验证码的字符,`pcd_getDot`和`pcd_setDot`用于获取和设置字符,`makeNoise`用于生成干扰线,`onNoiseLine`用于判断一个点是否在干扰线上,以及`Num2ChrB`用于将数字转换为适合BMP格式的数据。
这段代码展示了ASP语言中处理验证码生成的一些高级技术,包括字符的随机生成、字符的干扰以及图像数据的编码等。尽管这段代码看起来复杂,但它确保了验证码的复杂性和安全性,防止了自动化程序的轻易破解。
请注意,由于这段代码是ASP语言编写的,所以它的运行需要一个支持ASP环境的服务器。由于代码包含了大量的二进制操作,所以在理解和修改时可能需要一些对ASP和图像处理技术有深入理解的知识。
编程语言
- 反SPAM新思路—换Z-BLOG的验证码!
- aspx文件格式使用URLRewriter实现静态化变成html
- js HTML5手机刮刮乐代码
- 详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCo
- 微信小程序实现图片预览功能
- 微信小程序的tab选项卡的实现效果
- JavaScript框架是什么-怎样才能叫做框架?
- JavaScript删除指定子元素代码实例
- silverlight用webclient大文件上传的实例代码
- react router 4.0以上的路由应用详解
- jquery判断输入密码两次是否相等
- 什么是Ajax
- 创建第一个ASP.NET应用程序(第1节)
- vsCode中配置setings.json的技巧
- 详解Mysql数据库date, datetime类型设置0000-00-00默认值
- ASP.NET中常用输出JS脚本的类实例