你的浏览器正在给铭文打工:ord 安全文档里的 XSS 与仿冒陷阱 图 1
你的浏览器正在给铭文打工:ord 安全文档里的 XSS 与仿冒陷阱 · 图 1

自己架一台 ord 浏览器跑铭文数据的想法并不罕见:不想依赖第三方站点、想在局域网里给团队查内容。但 ord 官方专门放了一篇 Security 文档,先给这类尝试泼了一盆冷水——它开头就说,任何人都能发布铭文,其中包含任意 HTML,而浏览器会把这些内容通过 /content/ 等内容端点端上桌。换句话说,服务器吐出来的不只是图片,还有一整个用户提交的网页。

Security 页面点名的第一个风险是跨站脚本:攻击者把一个精心构造的 HTML 铭文刻上链,诱导你在自建浏览器里打开它,脚本就在你的浏览器里、以你的会话身份运行。页面第二个名字更阴险,叫仿冒:同一个部署既像普通网页又像铭文浏览器,把真实内容与伪造内容混在同一域名下,让你分不清看到的那张图、那笔订单是不是账本里的原件。文档给出的结论毫不含糊:没有缓解措施的话,一个托管 ord 浏览器的域名应当被当作完全不可信来处理。

这条警告反过来也解释了官方为什么给 ordinals.com 上的内容套沙箱:HTML 铭文默认在隔离环境渲染,脚本、弹窗与外部引用都被限制,普通查看不会替铭文执行代码。沙箱是有意的牢笼,不是缺陷;想在自建部署里为了方便关掉限制,等于亲手把 Security 文档里的攻击面逐个打开。

如果你确实要在本地或小范围部署,几条防御可以直接抄:只给自己和可信同事访问,公网裸奔等于自愿成为钓鱼素材;查看铭文内容优先用隔离的浏览器环境或独立域名,别和钱包扩展同居一台浏览器;看到铭文里渲染出的登录框、授权按钮、“请连接钱包”字样的页面,一律当不存在——那些不是官方界面,是别人刻进链上的诱饵;引用内容端点做工具时,用代理层过滤脚本与重定向,别裸透传。

作为普通查看者,核对习惯比技术栈更能救命:需要确认一张铭文图的出处,回到交易与铭文 ID 本身核对,而不是信渲染它的域名;别人发来的 ord 链接先想清楚指向谁的部署。自建浏览器的运维者则要明白,你提供的不只是一个查询页,而是一条别人输入任何链上内容的通道,责任边界与访问控制在部署之前就该定好。本文只描述官方安全文档与防御措施,不构成任何投资建议。

把攻击链再排一遍顺序,能看清每环的防御点:第一步永远是诱导——发链接、发日历邀请、在别的铭文页里嵌跳转;第二步是渲染——诱导你在浏览器里打开那个精心构造的 HTML 铭文;第三步才是脚本落地,尝试窃取剪贴板、篡改你正准备粘贴的地址、或弹出以假乱真的签名请求。防御因此可以逐环前置:不点不明铭文链接是第一道墙;打开任何铭文内容时保持它可能是诱饵的默认心态;出现输入钱包信息、下载插件、引导授权的界面立即关闭页面。自建实例的运维者还应加一条日常:给实例配只读域名与严格跨域策略,把内容端点与管理界面彻底隔离,让就算有人刻了恶意内容,也只能污染一个只读沙盒而不是整个部署。

普通收藏者还应知道沙箱的代价面,避免产生错误期待:为了隔离风险,HTML 铭文里的外部资源、脚本互动与跳转默认受限,一些依赖外链的交互式作品在官方渲染下可能不完整显示。这不是作品损坏,也不是索引出错,而是安全策略的预期行为。想看完整交互效果,社区做法是把内容拉到本地隔离环境自行渲染,同时清楚那一瞬间你已从查看者变成了自己承担风险的执行者——回到这一页安全文档开头的原则:域名不可信时,先假设一切内容都是别人递到你桌上的陌生包裹。

你的浏览器正在给铭文打工:ord 安全文档里的 XSS 与仿冒陷阱 图 2
你的浏览器正在给铭文打工:ord 安全文档里的 XSS 与仿冒陷阱 · 图 2