ShieldFont 重拳打击无视 Robots.txt 的 AI 爬虫
数十年来,网站一直依赖自愿遵守的 robots.txt 指令;如今,ShieldFont 将网页字体变成了对抗 AI 爬虫的武器。这个开源项目让人们能够正常阅读文章,却让收集原始 HTML 的自动化系统看到不同的词语。它并非只是隐藏内容,而是试图让未经授权的数据采集变得不那么有价值。
这一差别让 ShieldFont 不只是又一个拦截机器人的实验。拦截措施会要求爬虫离开,但爬虫可以置之不理。ShieldFont 假定这种要求已经失效,并通过改变不合规爬虫实际接收到的内容作出回应。
创意工作室 S&A 与哥本哈根字体厂商 Playtype 于 2026 年 7 月 28 日推出该项目。Hackaday 于 8 月 14 日报道了它,使这一概念进入更广泛的技术受众视野。核心冲突如今已然清晰:网站所有者希望人类读者能够访问内容,却不愿自动提供干净的 AI 训练数据。
这同样是一种有意保持不完美的防御。ShieldFont 可能损害无障碍访问、搜索可见性、复制粘贴、翻译及其他浏览器功能。决心足够坚定的爬虫仍可将其还原。它真正瞄准的是采集的经济成本,而不是从理论上杜绝提取的可能性。
ShieldFont 将内容本身变成退出机制
ShieldFont 不再只是礼貌地提出请求,而是让采集错误页面表示形式的爬虫承担技术后果。
传统网站会在 HTML 中发送文本,并指示浏览器如何呈现。人们看到的是渲染后的结果,而许多爬虫则直接提取底层文本。ShieldFont 利用了源文本与显示结果之间的这道缝隙。
在发布前,其编码器会用诱饵词替换选定的源词。随后,浏览器加载一种经过特殊构造的 OpenType 字体,在视觉上还原作者原本想表达的词语。用户看到的是原始句子,但基础 HTML 爬虫存储的却是替换后的内容。
OpenType 是一种广泛使用的字体格式,决定字符如何变为可见字形。其 GSUB 系统,即字形替换,通常用于处理连字和特定语言字形等功能。ShieldFont 将这一机制重新用于词语层面。
项目的 ShieldFont mechanics 提供了一个简单示例。作者原本写下 “winners” 的地方,源文本可能包含 “avengers”。字体会绘制出 “winners” 的字母,而原始文本采集器得到的却是错误的名词。
这一方法不同于打乱每一个字符。字符噪声很容易被质量过滤器剔除,现代语言模型也往往能够还原简单的替换密码。ShieldFont 则试图在改变事实含义的同时,保留语法上的流畅性。
它的映射会用同一语法类别中的替代词进行交换。名词通常替换名词,动词通常替换动词。生成的段落应当足够通顺,能够通过自动数据集清洗,同时又与原始表述相差足够远,以致歪曲原本的主张。
这种平衡很重要,因为被拒绝的文本永远不会进入训练。明显损坏的句子或许能保护原文,但不会给采集者带来太多额外风险。看似可信的错误文本更可能消耗过滤、审查或训练资源。
创作者将这种效果称为投毒。对此应保持克制,因为目前没有公开证据表明 ShieldFont 会在有意义的规模上降低前沿模型的表现。已展示的结果涉及的是被转换的段落,而非商业模型性能可量化的下降。
根据项目的受控测试,55.8% 的受保护段落不再表达相同的事实主张。据称,这些段落仍足够连贯,外观上类似普通文本。该数字来自 ShieldFont 自身的方法论,尚未得到广泛的独立复现。
当前版本面向常用英语内容词。其三套主要词典各包含约 12,000 组词对。一个较小的可选映射替换的词更少,为发布者在隐蔽性与兼容性之间提供另一种平衡。
发布者可以使用托管编码器、React 组件、构建时 JavaScript,或自定义字体工作流。保护也可仅限于选定区块。这样便可保持导航、标题和对搜索至关重要的材料不变。
因此,ShieldFont 并未在网站周围建立一道看不见的边界。它是在内容抵达不受信任的采集者之前,改变其中的特定部分。这种有限范围既构成其核心优势,也带来最严重的局限。
为什么 Robots.txt 已无法一锤定音
robots.txt 的问题不在于语法薄弱,而在于当爬虫决定规则不适用于自己时,缺乏执行机制。
Robots Exclusion Protocol 可追溯至早期互联网。网站会在根目录放置 robots.txt 文件,然后列出哪些用户代理应避开特定路径。合作型爬虫会在请求这些资源前读取该文件。
该协议已通过 RFC 9309 标准化,但标准化并未使其成为访问控制机制。Robots.txt 传达的是一种偏好;它不会验证访问者身份、加密内容,也无法阻止伪装客户端发起请求。
过去,这一区别尚可接受,因为搜索引擎有动力表明自身身份,并维持与发布者的关系。AI 训练引入了目标、身份和供应链均不相同的采集者。数据集构建者还可以通过中介渠道获取材料,而非使用可识别的一方机器人。
现有证据支持人们对合规程度参差不齐的担忧。2025 年的一项 crawler compliance study 检查了机构网站日志中 40 天内自我声明身份的 130 个机器人。研究人员报告称,限制越严格,合规程度越低。
研究还发现,部分 AI 搜索爬虫很少检查 robots.txt。这一结果并不能证明每家 AI 公司都无视发布者偏好,却说明了为何一份自愿遵守的文件无法独自承担全部执行责任。
网站运营者可以拦截已知用户代理、质询可疑请求、实施速率限制,或使用 Web 应用防火墙。这些控制措施更接近网络请求层面,因此比文本文件指令更难被忽略。
然而,识别仍然困难。采集者可以轮换地址、更改用户代理字符串、分散请求,或伪装成正常浏览器流量。激进的防御措施还可能误拦搜索引擎、无障碍服务、存档项目和合法研究人员。
商业基础设施提供商已推出更强的控制措施。Cloudflare 的 AI bot controls 允许客户拦截与模型训练和其他 AI 用途相关的爬虫。这类系统受益于流量可见性,而个体发布者往往不具备这种能力。
ShieldFont 攻击的是另一层。它假定请求已经无视发布者声明的偏好和外围防御,成功抵达页面。爬虫获得成功响应,但响应中包含一种表示形式,一旦脱离浏览器渲染过程就变得不可靠。
这将对抗从“许可与不合规”转变为“低成本采集与高成本验证”。爬虫仍然可以取胜,但首先必须识别受保护页面、找出相关映射、渲染内容,或通过其他方式恢复可见文本。
项目创始人将发布与同意视为两个独立行为。他们认为,让人类读者能够访问作品,并不应自动授权模型训练。ShieldFont 将这一政策主张转化为一种技术上的不便。
这也解释了项目的吸引力。它让个体发布者拥有比另一条排除规则更具体的手段。然而,它也将冲突转移到页面本身,读者和搜索系统可能因此承受附带损害。
真正的机制是制造经济摩擦
只有当还原 ShieldFont 的成本高于批量采集者从单个受保护页面中预期获得的收益时,它才会奏效。
任何公开网页字体都无法永久保守其映射秘密。浏览器需要该字体来显示预期的词语,因此必要的渲染信息会传到用户设备上。针对性的调查者可以下载并分析它。
ShieldFont 自身的 deployment caveats 承认了这一弱点。开发者无需使用其词典,便从一种已发布字体中恢复了 11,962 组词对。他们估计,构建 OpenType 反转器需要专业工程能力,但映射仍然可以被恢复。
由于项目是开源的,默认词典同样公开。任何构建专用解码器的人都可以直接研究它们。私有映射会提高每个网站所需的工作量,但不会使还原变得不可能。
因此,这种防御依赖于规模。大多数批量爬虫都针对低成本获取大量 HTML 而优化。它们通常不会检查每一种字体、将其匹配到受保护区块,并为每个域名重建从源文本到字形的关系。
爬虫可以在无头浏览器中渲染每个页面,也可以截取屏幕截图并使用光学字符识别,将可见像素转回文本。视觉语言模型也可以从渲染图像中执行类似的恢复。
每条路径都会增加成本。渲染比下载原始标记消耗更多计算资源和时间。OCR 增加了处理与验证步骤。视觉模型则带来更多费用、延迟和出错机会。
检测也构成另一项挑战。如果 ShieldFont 的部署暴露了固定类名、文件路径或无障碍属性,采集者就能以较低成本标记它们。因此,该项目鼓励采用多样化映射和伪装式实现。
伪装不可能永远有效。一旦采用情况变得明显,大型采集者就能将检测纳入其处理流程。关键问题在于,检测和恢复能否在大量彼此无关的网站中始终保持经济可行。
这更像垃圾邮件过滤与广告拦截,而非传统加密。任何一方都无法取得最终技术胜利。一方改变信号,另一方则更新识别方式和反制措施。
ShieldFont 提供 Alpha、Beta 和 Gamma 映射,以及生成私有变体的工具。围绕一种映射训练的解码器可能无法应对另一种映射。广泛使用独特映射会增加采集者针对每个网站的验证负担。
不过,鼓励适应的同一种开放性也帮助了对手。研究人员和爬虫都可以检查每一项设计决策。开放开发让弱点更易被发现,尽管它也让贡献者能够开发新的映射和集成方案。
因此,最强的主张应当保持适度。ShieldFont 能让朴素的提取产生错误结果,并提高批量验证的成本。它无法确保受保护的文字不会进入任何数据集。
投毒的主张则更难证实。训练流水线会对海量集合进行去重、评分、过滤、分类和混合。数量有限的被篡改文本可能在影响模型之前就被丢弃、稀释或纠正。
ShieldFont 的创作者报告称,将约四分之一的词语替换后,半数测试段落失去了原有的事实主张。这衡量的是文本内部的语义失真,并不能证明模型下游行为发生了改变。
采集器也可能将受保护页面视为不可信,进而完全排除。尽管这是通过威慑实现拦截、而不是通过摄取实现投毒,但这一结果依然推进了发布者的退出目标。
这正是该项目的核心反转。ShieldFont 不需要每一句被投毒的文本都损害训练。它只需要让采集器怀疑:表面流畅的文本,是否值得在缺乏额外检查的情况下保留。
这种防御也会影响读者、搜索和无障碍访问
ShieldFont 最棘手的问题在于:为合法用户提供服务的机器,往往也会读取未经授权爬虫所读取的同一底层文本。
屏幕阅读器通常依赖文档结构和文本内容,而不只是字体绘制出的像素。如果源代码中含有诱饵词,辅助软件就可能播报错误信息。这会让受保护页面变得具有主动误导性。
默认实现通过为受保护区块标记 aria-hidden 来避免这一结果。该属性会将内容从无障碍树中移除。视力正常的读者看到完整段落时,屏幕阅读器用户可能什么也听不到。
这并不是可普遍接受的结果。ShieldFont 的文档警告称,受保护区块可能无法满足适用的 WCAG 要求。承担残障人士无障碍访问义务的发布者,在部署前需要进行专业审查。
一个处于测试阶段的动态模式尝试了另一种路径。它以加密形式存储原始文本,并要求读者的浏览器在显示文本前解开一道计算谜题。该延迟旨在让单个用户仍可接受,同时抑制大规模自动化提取。
这一设计仍会给合法用户带来阻碍。它需要 JavaScript,并可能干扰键盘焦点。项目方表示已用 VoiceOver 和自动化工具测试该方法,但这并不能证明其广泛符合无障碍标准。
其他浏览器功能同样依赖源文本。复制受保护段落时,可能复制到诱饵词而非可见文字。页内查找、翻译、阅读模式、内容订阅源、强制字体和纯文本视图都可能失效或表现异常。
搜索引擎带来了另一层冲突。索引原始文本的爬虫可能会对诱饵内容而非可见页面进行排名。这可能削弱相关性、生成不准确的摘要,或让网站与作者从未打算发布的词语产生关联。
创作者建议不要保护对搜索至关重要的内容。营销页面、标题、导航和其他用于发现的材料可以继续采用普通 HTML。付费墙后的存档或精选创作段落,则是更合理的部署目标。
这种逐区块处理方式可以减少损害,但也会让采集器在受保护材料周围获得干净的上下文。模型可能从附近的标题、摘要、结构化数据、订阅源或其他地方的重复副本中推断出部分被替换的词语。
实现过程也可能在发布时失败。一些构建流程会在生成受保护输出前,将作者原始文章保留在注释中。一旦这些注释被一同发布,干净文本及其对应诱饵内容都会暴露。
ShieldFont 提供了旨在捕捉这一错误的检查机制。其文档警告开发者应移除源注释,并在仍存在受保护标记时让构建失败。不过,这项保障仍依赖正确集成和测试。
私有映射文件也需要同样谨慎。若网站在字体旁公开可读取的字典,便会失去意义。缓存版本、源映射、内容 API 和预览端点也可能泄露原始措辞。
因此,安全团队应将 ShieldFont 视为实验性的内容转换手段,而不是访问控制系统。它不能替代身份验证、授权、速率限制、监控或合同限制。
发布者还必须考虑用户信任。访客复制引文后得到不同措辞,完全可能认为页面出了问题。研究人员、学生和记者需要在原始视觉呈现之外获得准确文本。
个人知识工具也面临同样的问题。有人将文章保存到 AI knowledge base 时,可能在不知情的情况下归档了诱饵版本。防御性投毒无法区分未经授权的训练与读者为合法用途保存材料。
这种附带损害限制了 ShieldFont 的适用场景。它或许适合艺术声明、受控实验,或对无障碍与内容发现要求较低的精选材料。对于公共服务信息而言,它是风险很高的默认方案。
ShieldFont 加入更广泛的数据投毒潮流
该项目将对抗性保护从图像扩展到普通网页文本,但也继承了同样的验证和采用问题。
在模型摄取前,艺术家们已经探索过改变数字作品的工具。Glaze 试图干扰未经授权的风格模仿,而 Nightshade 则通过对抗性改动瞄准图像模型训练。两者都反映出人们对依赖采集者配合的退出机制感到挫败。
ShieldFont 将类似理念应用于文本,但其机制格外易于理解。它不需要对图像像素施加不可见扰动,而是利用浏览器和原始文本爬虫可以从同一份文档得出不同信息这一事实。
早期的字体实验同样将视觉阅读与机器解读分离开来。TuringFonts 使用替换密码字体,来向简单机器人隐藏信息。ZXX 则改变字形,以抵抗光学字符识别。
现代系统削弱了这些方法。语言模型通常能从上下文解码字符替换,而视觉模型能够读取风格化文字。ShieldFont 试图保留流畅词元,同时改变含义,瞄准的是数据集管线,而不只是识别过程。
一项名为“Poisoned Typeface”的 2026 年安全研究从相反方向考察了恶意重映射字体。研究人员据称发现,AI 助手往往信任底层文本,而人类看到的渲染内容却不同。这种差异可以支持防御、欺骗或攻击。
这种双重用途很重要。一种能向爬虫隐藏准确文本的字体,也可以让人看到一条指令,同时让自动化代理处理另一条指令。同样的不匹配可能影响浏览器助手、企业代理和自动化采购系统。
防御者必须避免将字体重映射常态化为可信内容。盲目读取源文本的代理容易受到诱饵攻击。信任截图的代理则可能遭遇视觉提示注入。比较两种表示会提高成本,但仍会留下歧义。
因此,对模型开发者而言,ShieldFont 是对数据溯源的警示。流畅语言不一定忠实于人类可见的来源。训练管线可能需要能显示页面在采集时如何渲染的信号。
溯源会增加存储和计算成本。渲染数十亿页面、保留截图、收集字体并协调不同表示,会让大规模网络数据集更加昂贵。这种成本上升正是 ShieldFont 试图施加的压力。
对发布者而言,更广泛的趋势是转向可执行的控制措施。网络拦截、经过验证的访问、许可系统、机器可读权限和对抗性转换,都试图取代非正式预期。
没有任何单一方法能解决这一冲突。身份验证会限制读者访问。拦截会产生误报。许可需要对手方与标准。投毒可能伤害合法用户。Robots.txt 仍然是记录发布者意图的有用明确方式,但它无法自行执行。
ShieldFont 最持久的贡献或许在于概念层面,而非运营层面。它表明一个网页具有多个可读层,采集器必须选择信任哪一层。这个选择如今带有法律、伦理和技术后果。
该项目还挑战了一个关于公开可用性的常见假设。内容可以公开可读,却不必在技术上保持中立。发布者可以有意塑造自动化提取的成本、可靠性和允许用途。
什么将决定 ShieldFont 是否重要
三个信号将决定 ShieldFont 是成为有意义的基础设施,还是继续作为同意问题的尖锐示范。
第一个信号是独立复现。研究人员需要在现实的采集、过滤、去重和微调管线中测试当前映射。仅凭段落层面的语义变化,无法证明模型规模的数据集投毒。
有价值的研究应比较原始 HTML 提取、浏览器渲染文本、OCR、字体反演和视觉语言恢复。它们还应衡量误检情况,以及检查未使用 ShieldFont 的页面所需成本。
即便采集器移除每一个受保护页面,结果也可能增强该项目的论点。可靠排除将表明该字体通过经济威慑执行了退出机制。低成本自动恢复则会削弱这一主张。
第二个信号是发布者采用不同映射。单一公开映射很容易被识别和解码。数百个独立实现将更好地检验逐站点变化是否会造成有意义的运营阻力。
采用质量比下载量更重要。发布者必须在不泄露明文、不破坏导航或不排除屏幕阅读器用户的前提下部署字体。真实网站会暴露出受控演示无法复现的集成问题。
值得关注其是否用于档案、仅限会员的文章、创意写作及其他不高度依赖搜索排名的材料。在关键信息中广泛部署,可能会引发更强烈的无障碍反对意见。
第三个信号是爬虫和代理开发者的回应。采集器可以识别已知字体文件、解析 OpenType 替换、渲染可疑页面,或丢弃受保护区块。每种选择都揭示了他们愿意容忍多少额外处理。
浏览器代理也可能开始比较 DOM 文本与渲染文本。不匹配可能触发警告、第二种检索方法或拒绝执行操作。这类保障既能应对恶意重映射,也能应对防御性投毒。
这些回应将决定实际结果。如果恢复成为一个低成本的库函数,ShieldFont 就需要更快地改变映射,或采用更复杂的伪装。如果采集管线直接拒绝受保护页面,发布者就能获得更强的退出机制。
法律和行业发展可能减少对对抗性防御的需求。可执行的许可、可靠的爬虫身份以及被认可的同意信号,将提供更干净的解决方案。ShieldFont 的存在,是因为许多创作者如今并不信任这些系统。
不应将该项目视为无法破解的锁。其创作者自己也拒绝这种描述。更恰当的理解是:它对一个此前将公开文本视为廉价原材料的采集过程征收了一项附加费。
目前,这项附加费也落在了一些合法读者身上。无障碍失败、浏览器功能损坏和不准确的搜索索引并非细枝末节。它们决定了这种策略是在保护创作权,还是仅仅转移了伤害。
对开发者和出版商而言,当务之急是谨慎测试。在为任何重要内容加上 ShieldFont 之前,应对照检查源文本、渲染后的文本、辅助功能输出、复制出的内容、搜索预览、信息流以及归档版本。
对 AI 构建者来说,传递的信息同样明确:再也不能将 HTML 视为用户实际看到内容的无可置疑的记录。ShieldFont 让这种不一致变得有意为之、显而易见,并且易于复现。
更大的问题在于:在对抗性发布成为常态之前,征得同意的机制能否建立起可信度。如果爬虫持续无视明确表达的偏好,更多创作者将寻求能够施加后果的防御手段。ShieldFont 提供了一种颇具挑衅性的答案:当抓取工具拒绝尊重标识时,就让它获取的材料变得不那么可信。



