Datasette 发布 IP 限流插件 0.1a0,用 GPT-5.5 代码生成对抗恶意爬虫
Datasette 作者 Simon Willison 发布 datasette-ip-rate-limit 0.1a0 插件,用于限制恶意爬虫对特定路径的频繁请求。插件支持按 IP 限流、自定义窗口和封禁时长,配置示例中设置了 60 秒内最多 60 次请求,超限封禁 20 秒。本文介绍插件功能、配置方法,并分析对中文圈数据发布者的实用价值。
一句话看懂
Datasette 发布 IP 限流插件 0.1a0,用 GPT-5.5 代码生成,阻止恶意爬虫对特定数据库路径的频繁请求。
详细发生了什么
Datasette 作者 Simon Willison 在博客中宣布发布 datasette-ip-rate-limit 0.1a0 插件。起因是 datasette.io 网站持续遭受不守规矩的爬虫攻击,这些爬虫对特定区域(如演示数据库页面)发起高频请求,导致服务器负载过高。
Willison 使用 Codex(GPT-5.5 xhigh)生成了这个可配置的限流插件。插件通过检查请求头中的 IP 地址(如 Fly-Client-IP)来识别客户端,并允许管理员定义多条规则,每条规则指定受保护的路径、时间窗口(window_seconds)、最大请求数(max_requests)以及封禁时长(block_seconds)。
生产配置示例:对 /global-power-plants/* 和 /legislators/* 路径,60 秒内最多允许 60 次请求,超限则封禁该 IP 20 秒。同时,静态文件和 Turnstile 验证路径被豁免。
中文圈视角
这个插件对中文圈的数据发布者和 Datasette 用户有直接参考价值。国内很多开发者用 Datasette 搭建公开数据集查询服务(如政府开放数据、学术数据库),同样面临爬虫滥用问题。
实用建议:
- 如果部署在 Fly.io 等云平台,可直接使用 Fly-Client-IP 头;国内部署需根据反向代理(如 Nginx)调整 header 字段。
- 插件配置简单,YAML 格式,适合非运维人员快速上手。
- 相比 Cloudflare 等全局 WAF,此插件更轻量,且能精确控制到具体路径。
国产替代思考: 目前国内类似 Datasette 的开源项目(如 Metabase 中文版、Superset)缺乏原生 IP 限流插件,通常依赖 Nginx 或云服务商的安全组。这个插件模式值得借鉴——用 AI 辅助生成特定场景的轻量工具,而非依赖大而全的解决方案。
注意点: 插件尚在 alpha 阶段,生产环境需谨慎测试。国内用户需注意数据合规,确保限流日志不泄露用户隐私。
几条值得记住的细节
- 插件版本 0.1a0,由 GPT-5.5 xhigh(Codex)生成代码。
- 支持自定义 header 字段,默认示例使用 Fly-Client-IP。
- 最大记录 IP 数 max_keys 设为 10000,避免内存溢出。
- 封禁时长 block_seconds 设为 20 秒,适合短期高频攻击。
- 豁免路径 exempt_paths 可配置,避免误伤静态资源和验证接口。
一句话总结
如果你用 Datasette 公开数据,这个插件能低成本挡住恶意爬虫,且配置灵活,值得一试。