2009-03-21

不使用验证码如何防止恶意的代码攻击

本文主要参考http://15daysofjquery.com/examples/contact-forms/
主要思路包括:
  1. 在载入注册页面A(以此为例,类似的还包括有登录页面,评论页面等)的同时,由系统载入另一文件B
  2. 文件B的作用是:1)以服务器时间和一个秘密字符串共同加密为一段单向字符串 2)将这段生成的单向字符串设置在用户的cookie中 3)将系统时间作为hidden字段加入用户的表单中
  3. 用户提交表单后,服务器可根据hidden字段的字符串+秘密字符串以相同的加密算法重新生成一个字符串,如果与用户浏览器中设置的cookie相同,则认为是用户操作,予以继续操作的权限,否则认定为恶意代码,提示出错。
好处:
  • 无需烦人的验证码的加入
不足:
  • 需要客户端的cookie和JS支持

没有评论: