2012-02-18

网站如何禁止非浏览器访问?

Views: 13044 | Add Comments

网站如果禁止非浏览器访问, 一般主要还是防止自动 Spam, 主要是:

  • 防止网站被机器人恶意抓取
  • 防止网站被机器人恶意提交

判断恶意请求(程序和软件直接发送 HTTP 请求)的方法有很多, 比如同 IP 请求频率是. 但一旦判定某个请求为异常行为之后, 并不适合直接关闭该连接, 或者返回出错页. 因为绝大多数的判定方法都无法做到很高的正确率, 其主要原来就是缺少"交互性". "交互性"是判断人和机器的主要因素.

这里判断一种利用交互性来判别是否浏览器正常访问的方法:

  1. 当初步判定请求为异常时, 给该请求返回一个动态令牌, 要求对方在下次重新带着该令牌来访问原先请求的资源;
  2. 如何告知用户进行这个行为, 根据交互性的强弱依次为:

    1. 设置 Cookie
    2. 通过 JavaScript 脚本的执行(设置 Cookie, 生成带令牌的链接并访问)
    3. 显示网页表单, 要求用户进行点击和输入等操作(单纯的无输入表单, 图片验证码, 声音验证码)
  3. 第一种设置 Cookie 太过于简单, 因为一般的机器人都能执行该行为. 第二种 JavaScript 脚本的方式, 其实已经能阻挡大部分机器人. 第三种是非常好的识别那漏掉的一小撮高级机器人, 但同时也可能影响正常用户体验.

Related posts:

  1. 账号系统的两阶段登录和三阶段登录
  2. 让你的网站支持手机二维码登录
  3. 博客防垃圾评论探讨
  4. JavaScript+jQuery两栏选择控件
  5. JavaScript 类/函数继承最佳实践
Posted by ideawu at 2012-02-18 11:50:43

Leave a Comment