防御原理 (Defense Mechanics)

深入解析JS防爬虫技术的三大核心机制:JS Challenge、动态签名与环境检测。

工作流程 (Workflow)
迫使客户端执行JS代码以证明其为真实浏览器

1. 首次请求拦截

服务器返回一段混淆的JS代码而非真实内容。状态码通常为 503 或 200。

2. 浏览器执行计算

真实浏览器自动执行JS,计算出验证Token(如数学运算、Hash计算)。

3. 二次请求验证

浏览器携带Token自动刷新或发送新请求。服务器验证通过后设置Cookie。

代码示例 (Implementation)
javascript
// 服务器端生成的 Challenge 代码
<script>
  (function(){
    var a = function() { return Date.now() / 1000; };
    var b = function(x) { return x * 3 + 15; };
    var token = b(a());
    
    // 设置 Cookie 并刷新
    document.cookie = "verify_token=" + token + "; path=/";
    location.reload();
  })();
</script>
⚠️ 防御效果:普通 HTTP 爬虫(如 Python requests)无法执行这段代码,因此无法获取 Token,请求会被持续拦截。