当前位置: 首页 > news >正文

llms-txt-hub安全架构揭秘:CSRF防护、速率限制与Google Web Risk三重防线

llms-txt-hub安全架构揭秘:CSRF防护、速率限制与Google Web Risk三重防线

【免费下载链接】llms-txt-hub🤖 The largest directory for AI-ready documentation and tools implementing the proposed llms.txt standard项目地址: https://gitcode.com/gh_mirrors/ll/llms-txt-hub

llms-txt-hub 是目前最大的 llms.txt 标准文档与工具目录平台,收录了数千个 AI-ready 网站的 llms.txt 文件。作为一个开放提交、自动审核、面向全网用户的高流量站点,它的安全架构直接决定平台能否抵御恶意提交与攻击。本文将从源码层面拆解 llms-txt-hub 的CSRF 防护速率限制Google Web Risk 恶意网址检测三重防线,看看这套开源项目究竟如何做到"来者可查、提交可控、危险网址零放行"。

llms-txt-hub 面临哪些真实安全威胁?

任何允许用户提交网址并自动发布的平台,都会遇到三类典型攻击:

  • CSRF 跨站请求伪造:攻击者在恶意网页中诱导已登录用户"代为提交",绕过身份校验。
  • 接口滥用与刷量:脚本批量提交垃圾网址、疯狂调用查询接口,拖垮服务器。
  • 恶意网址投毒:把钓鱼、挂马、恶意软件下载链接伪装成正常网站混入目录。

针对这三类威胁,llms-txt-hub 分别部署了对应防线,形成"认证层—限流层—内容信誉层"的纵深防御体系。

第一道防线:CSRF 防护,让伪造请求无处遁形

llms-txt-hub 的 CSRF 防护核心位于 csrf-protection.ts 与 middleware-csrf.ts 两个文件,采用业界标准的双提交 Cookie 模式(Double-Submit Cookie),实现难度低且不依赖会话存储。

令牌如何生成与存储?

服务端调用crypto.randomBytes(32)生成 256 位随机令牌,并以HTTP-only Cookie方式写入浏览器:

  • 令牌有效期 24 小时,过期自动失效;
  • Cookie 标记httpOnly(防 XSS 窃取)、sameSite: 'strict'(阻止跨站携带);
  • 生产环境强制开启secure属性,仅允许 HTTPS 传输。

请求如何被验证?

用户提交表单或 AJAX 请求时,客户端需同时携带 Cookie 中的令牌与请求头/表单中的_csrf字段(由 csrf-provider.tsx 组件在页面加载时自动初始化)。服务端校验流程如下:

  1. GET、HEAD、OPTIONS 等安全方法直接放行;
  2. 携带 Bearer Token 的 API 请求视为已认证,跳过检查;
  3. 从请求头x-csrf-token、表单字段或 URL 参数中提取令牌;
  4. 从 Cookie 中取出存储令牌并比对是否过期;
  5. crypto.timingSafeEqual时间恒定比较,防止时序侧信道攻击;
  6. 校验 Origin 与 Host 是否同源,阻断跨站伪造。

校验失败统一返回 403 与CSRF_VALIDATION_FAILED错误码,全程还会记录脱敏后的令牌哈希日志,方便安全审计。

第二道防线:速率限制,从源头掐断接口滥用

仅靠 CSRF 拦不住"合法登录后"的脚本轰炸,所以 llms-txt-hub 在 rate-limiting 包中基于Upstash Redis + 滑动窗口算法构建了统一限流层。

分接口精细化限流策略

不同接口的风险等级不同,限流阈值也各不相同(源码中RATE_LIMITS常量):

接口类型限制额度时间窗口
提交接口(SUBMIT_API)10 次1 小时
认证接口(AUTH_API)20 次15 分钟
元数据抓取(METADATA_API)50 次1 小时
会员接口(MEMBERS_API)200 次1 小时
贡献接口(CONTRIBUTIONS_API)100 次1 小时
通用 API(GENERAL_API)500 次1 小时

提交接口门槛最高,每小时仅允许 10 次,从业务层面杜绝"批量灌库"。

客户端识别如何防伪造?

限流的关键在于"识别谁在请求"。llms-txt-hub 采用多级回退识别链(见 index.ts):

  1. 优先读取 Vercel 专属头x-vercel-forwarded-for(防伪造的最可靠来源);
  2. 依次回退到x-forwarded-forx-real-ipcf-connecting-ip
  3. 最后兜底用 User-Agent 哈希作为标识。

超过阈值时返回 429 状态码,并附上Retry-AfterX-RateLimit-*响应头,客户端可据此自动退避重试。

第三道防线:Google Web Risk,恶意网址零容忍

提交内容本身的"善恶判定"交给第三层:Google Web Risk 恶意网址信誉检查。这部分实现在 web-risk.ts,是 llms-txt-hub 提交信任体系(submission-trust)的关键一环。

检查哪些威胁类型?

llms-txt-hub 针对每个提交网址,向 Google Web Risk API 查询四类威胁:

  • MALWARE:传播恶意软件的站点;
  • SOCIAL_ENGINEERING:钓鱼、欺诈类社工网站;
  • UNWANTED_SOFTWARE:捆绑流氓软件下载站;
  • SOCIAL_ENGINEERING_EXTENDED_COVERAGE:更广覆盖的社工扩展类别。

工业级的调用实现细节

代码里有几个值得学习的工程细节:

  • 超时保护:每次查询设置严格截止时间,超时即中止请求并返回"未知"结论,绝不拖垮主流程(fetchWithDeadline函数);
  • 响应体上限:限制响应体不超过 16KB,防止恶意响应内存膨胀;
  • 结果缓存新鲜度:标记为安全的网址带有过期时间expiresAt,过期后重新校验,平衡性能与时效;
  • 失败降级:API Key 缺失、超时或解析失败时返回unknown状态,走"保守拒绝或稍后重试"策略,绝不误放行。

提交审核如何串联三层防线?

在 check-url/route.ts 中可以看到完整链路:请求先过限流检查(每 IP 每分钟 10 次)→ URL 格式与协议白名单校验 → 交由网络检查器抓取页面 → 同步调用Google Web Risk做信誉判定。任一环节不合格,都会返回安全提示文案(不泄露内部细节),只有全部通过才会进入发布队列。

总结:开源项目的安全范本

llms-txt-hub 用CSRF 双提交 Cookie 防护Redis 滑动窗口限流Google Web Risk 信誉检查三层防线,覆盖了从请求伪造、接口滥用到恶意投毒的完整攻击面,且每一层都遵循"失败保守、降级不误放"的安全原则。

如果你也在做类似的开放提交类 Web 项目,不妨直接 clone 这个仓库(git clone https://gitcode.com/gh_mirrors/ll/llms-txt-hub)研究它的安全模块源码——csrf-protection.ts、rate-limiting 和 web-risk.ts 都是可以直接借鉴的实战级实现。

【免费下载链接】llms-txt-hub🤖 The largest directory for AI-ready documentation and tools implementing the proposed llms.txt standard项目地址: https://gitcode.com/gh_mirrors/ll/llms-txt-hub

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1405111/

相关文章:

  • Android14 WMS-IWindow介绍
  • 电脑搜索应用找不到如何解决
  • 2026年隐形拉链厂家怎么选?一份行业观察与选型指南 - 品牌报告
  • Genesis WordPress缓存优化终极指南:Varnish高性能缓存配置与WordPress命中率提升技巧
  • 7-Zip-zstd压缩工具完全指南:一步到位让7-Zip用上6大现代压缩算法
  • 抖音批量下载工具完全上手手册:5 步用 douyin-downloader 建起无水印视频内容库
  • AXPhotoViewer 网络集成详解:SDWebImage、Kingfisher、Nuke 等 6 大方案对比与选型
  • 微信聊天记录导出终极指南:如何让每一段对话永久留痕?
  • FastCSV 读取 CSV 的 3 种记录类型:CsvRecord、NamedCsvRecord 与 StringArray,一篇搞懂怎么选
  • MobaXterm-keygen 使用指南:三步生成 Custom.mxtpro 注册文件,解锁专业版全部功能
  • 2026年贵阳人工养殖黄鳝基地 解决选场困惑 五家专业参考 - 滚动商讯
  • 温州小程序App制作公司怎么选?2026年十家高口碑服务商评测与实力解析 - 软件测评师
  • 新手养宠避坑指南,线下场地积累真实养犬认知 - 北京同城宠物基地
  • MAC地址每台设备的身份证号
  • 抖音无水印批量下载器完整实战指南
  • 基于SpringBoot的同人创作与分享平台系统(毕业设计项目源码+文档)
  • QSYM 核心架构全解析:从 PIN 插桩到 Z3 求解
  • SmartBugs 跨平台安装终极指南:Windows/macOS/Linux 避坑全攻略
  • 5步搭好免费自托管游戏串流服务:Sunshine 从安装到畅玩全指南
  • SCOOP多机部署实战:用SSH与hostfile构建分布式集群
  • iPhone远程控制安卓手机:Scrcpy-iOS跨平台远程控制从零上手
  • 2026单轴转台选购指南:精度、传动与厂家盘点
  • MiniMax Music 3 环境搭建教程:SGLang-Omni 部署与 API 调用从零开始
  • 【b站咸虾米】3 Vue CLI脚手架 2021最新Vue从基础到实例高级_vue2_vuecli脚手架博客案例
  • GetQzonehistory 实测:3分钟一键导出QQ空间全部说说,永久封存你的青春记忆
  • 2026年有医疗认证的UE Electronic相关企业选购参考榜 - 滚动商讯
  • 自指递归结构驱动认知流形可穿越虫洞形成机制(SH9认知几何学框架深化研究版)——算子表示、场方程、拓扑动力学与可验证实验方案
  • 2026 八月最新唐山下水道疏通上门维修冻管处理测漏异物打捞商家盘点 - 启航优客
  • 着眼长久陪伴,挑选能够共度漫长时光的家庭幼犬 - 北京同城宠物基地
  • 内蒙古旅行不想跟购物团?这7位正规持证导游,建议先收藏 - 纯玩旅游分享