十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Hyperresearch抓取安全加固清单:响应大小上限、TLS证书验证与私有主机白名单

Hyperresearch抓取安全加固清单:响应大小上限、TLS证书验证与私有主机白名单 Hyperresearch抓取安全加固清单响应大小上限、TLS证书验证与私有主机白名单【免费下载链接】hyperresearchAgent-driven research knowledge base. Agents collect, search, and synthesize web research into a persistent, searchable wiki.项目地址: https://gitcode.com/GitHub_Trending/hy/hyperresearchHyperresearch 是一个 Agent 驱动的研究知识库工具它让 AI 自动抓取、搜索并合成网络资料构建可长期检索的 Wiki。由于抓取目标不受你控制Hyperresearch 内置了一套 SSRF 防护网关通过响应大小上限、TLS 证书验证与私有主机白名单三道防线防止恶意页面把抓取器引向云元数据接口如 169.254.169.254或耗尽内存。本文带你逐项看懂这套加固机制以及如何在配置中调整它们。为什么抓取器需要安全网关当 AI Agent 自动抓取网页时攻击者可以用三种方式下手攻击手法风险Hyperresearch 的防线SSRF服务端请求伪造让抓取器访问内网、127.0.0.1、云元数据接口出站前逐跳校验目标 IP超大/无限响应体内存耗尽zip bomb 式攻击流式读取 大小上限超量即中断TLS 证书攻击中间人篡改传输内容默认验证证书且不自动降级重试所有出站请求都集中在一个模块 safe_http.py 中处理Web 抓取提供商builtin、crawl4ai 等全部经由它访问网络不存在后门通道。响应大小上限流式拦截超量即拒 ️大小上限不是下载完再检查而是边下载边计数——服务端即使谎报 Content-Length 或用分块传输也会在传输过程中被掐断先查声明值如果响应头Content-Length已声明超过上限直接拒绝一字节都不下载再查实际流逐块累加一旦累计字节数超过上限立即抛出错误终止连接。三类内容各自有默认上限定义在 config.py 的[fetch]配置段中配置项默认值适用场景max_html_bytes10 MiB网页正文max_pdf_bytes25 MiBPDF 论文下载max_image_bytes2 MiB图片资源这些值均可在.hyperresearch/config.toml中覆盖。PDF 下载入口 safe_get_pdf 会把配置里的上限原样传给网关保证你配的数就是生效的数。TLS 证书验证默认开启且绝不自动降级 这是 2.0 版本一个重要的行为变化PDF 下载路径过去静默关闭了证书验证verifyFalse现在pdf_verify_tls默认值为true见 config.py。更关键的设计是**拒绝但不自动重试**证书验证失败会抛出专用异常 CertVerificationError并明确告诉你如果这是一个你信任的证书损坏镜像请在[fetch]中显式设置pdf_verify_tls false被证书拒绝的 URL永远不会落入忽略 TLS 错误的浏览器回退通道——因为那等同于一次由攻击者触发的自动降级重试中间人只要递来一张坏证书就能强制你关闭验证批量抓取时这类 URL 会被大声跳过而不是静默吞掉。 建议除非你明确信任某个自签名证书的私有镜像否则保持默认值即可无需任何配置。私有主机白名单内网源的合法通道 SSRF 网关默认拒绝一切解析到私有地址RFC1918、回环、链路本地、CGNAT、6to4 包裹地址等的主机。但如果你有自托管镜像或内网 Wiki可以通过白名单放行[fetch] allow_private_hosts [10.8.0.0/16, mirror.internal]配置在 FetchSettings 中定义白名单支持两种条目解析逻辑见 _parse_allowlist主机名精确匹配大小写不敏感mirror.internal不会顺带放行evilmirror.internalCIDR 网段按解析后的 IP 地址匹配如10.8.0.0/16。两条值得注意的安全细节白名单不能绕过协议校验——file://之类非法协议依然被拒白名单主机仍需通过 DNS 解析写错一个 CIDR比如拼写错误的网段会大声报错而不是被静默忽略——否则一个手误看起来就像一次 SSRF 拦截让你误以为网关在乱抓。别漏掉的重定向逐跳复检 最终 URL 复查 攻击最常见的绕过方式是跳转钓鱼入口 URL 是公网的但 302 重定向指向内网地址。Hyperresearch 的对策是手动跟随重定向每一跳都重新走一遍完整的 URL 校验默认最多 5 跳白名单同样对跳转落点生效事后复查浏览器渲染完成后还会对最终落点 URL 再做一次校验_check_final_url防止页面内的二次跳转把入口检查变成睁眼瞎。完整的攻防对抗用例可以在测试套件中找到例如 test_safe_http.py 覆盖了 CGNAT 拒绝、6to4 包裹私有 IPv4 拒绝、跳转落白名单放行等场景test_final_url_recheck.py 验证了最终 URL 复查逻辑。快速上手三步完成加固配置 ✅保持默认大小上限与 TLS 验证开箱即安全什么都不改就是一套合理基线有内网源时在[fetch]中添加allow_private_hosts只放行你控制的网段或主机名有证书损坏的受信镜像时显式设置pdf_verify_tls false并在团队内记录原因。最后一点诚实说明源码注释中已如实标注地址校验对DNS rebinding是尽力而为的——校验时解析的 IP 与连接时解析的 IP 理论上可能被低 TTL 记录调包这部分残余风险已被接受并记录在 safe_http.py 模块文档中。对绝大多数使用场景这套网关已经把恶意网页操纵抓取器的可行路径堵得相当彻底。【免费下载链接】hyperresearchAgent-driven research knowledge base. Agents collect, search, and synthesize web research into a persistent, searchable wiki.项目地址: https://gitcode.com/GitHub_Trending/hy/hyperresearch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表