参考资料

  1. 有哪些常见的HTTP响应头误区
  2. 如何设置动态Token头进行防爬虫?
  3. 列举的这些HTTP响应头中,哪些最有效?
  4. 拦截搜索引擎爬虫
  5. 有哪些新的HTTP响应头用于防爬?
  6. 列举的这些HTTP响应头中
  7. 防爬虫策略构
  8. 网站防爬虫设置

如何设置HTTP响应头进行防爬虫?

以下是利用HTTP响应头设置防爬虫的详细方案,结合技术实现与安全策略:

一、基础防护头设置

X-Content-Type-Options: nosniff‌
强制浏览器遵循声明的MIME类型,防止爬虫通过内容嗅探获取非文本资源(如JSON数据伪装为HTML)‌。

X-Frame-Options: DENY/SAMEORIGIN‌
禁止页面被嵌入iframe,防止点击劫持类爬虫工具抓取内容‌。

Referrer-Policy: strict-origin-when-cross-origin‌
控制Referer信息泄露,减少爬虫通过外链分析获取站点结构‌。

二、动态混淆与访问控制

Content-Security-Policy (CSP)‌
限制资源加载来源,阻止爬虫注入恶意脚本或跨域窃取数据。例如:

http
Copy Code
Content-Security-Policy: default-src 'self'; script-src 'unsafe-inline'

可有效拦截非白名单的AJAX请求‌。

Set-Cookie安全属性‌
添加HttpOnly和Secure标志,防止Cookie被JavaScript爬虫窃取:

http
Copy Code
Set-Cookie: sessionid=abc123; HttpOnly; Secure; SameSite=Strict

结合SameSite属性可防御CSRF攻击‌。

三、高级反爬策略

动态Token头‌
通过X-Anti-Crawl-Token等自定义头传递一次性令牌,服务端验证合法性。例如拉钩网对头部请求加密,每次访问生成唯一Token‌。

速率限制头‌
使用Retry-After和X-RateLimit-*告知爬虫访问频率限制:

http
Copy Code
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
Retry-After: 60

适用于API接口防护‌。

四、注意事项
兼容性测试‌:部分头(如COEP/COOP)需浏览器支持,需评估用户环境‌。
法律合规‌:避免过度拦截合法爬虫(如搜索引擎),需遵守robots.txt协议‌。
组合策略‌:建议与验证码、行为分析等技术联动,形成多层防护‌。