如何设置HTTP响应头进行防爬虫?
参考资料
如何设置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协议。
组合策略:建议与验证码、行为分析等技术联动,形成多层防护。