## .arpa 区域与 ICMP 技巧深度解析
本文详细介绍了作者对罕见使用的 .arpa 域的探索,最初源于 Project SERVFAIL。他们从 ISP 处获得了一个委托的 ip6.arpa 区域,开启了一个引人入胜的实验平台。
.arpa 起源于 1960 年代的 ARPANET,作为过渡旧网络的临时域。虽然旨在用于反向 DNS (rDNS) 和元数据服务,但其灵活性允许进行非常规用途。作者发现,尽管 RFC 有建议,但可以将其他记录类型添加到 .arpa 区域,并且许多应用程序不会强制执行限制。
这导致了创造性的“技巧”——直接从 .arpa 地址提供网页,甚至运行 Fediverse 实例。核心创新在于操纵 ICMP Echo Reply 数据包(ping)以通过 PTR 记录显示动画,从而有效地将反向 DNS 变成正向传递机制。
作者还详细介绍了通过正确格式化 ICMPv6 Time Exceeded 消息来克服防火墙限制。最后,他们强调了在线反向 DNS 查找工具中潜在的安全漏洞,并负责任地向受影响方披露了发现。该项目最终以用 Raku 编写的自定义 IPv6 协议栈以提高性能,以及呼吁行动来探索互联网这一个经常被忽视的角落的可能性而告终。
## JavaScript 中被遗忘的表格 API
在 JavaScript 中创建 HTML 表格时,开发者常常使用 `innerHTML` 进行字符串操作——这种做法容易产生安全风险。然而,存在一个鲜为人知的原生 API,可以直接操作表格元素。
该 API 允许程序化地创建表格、行、单元格 (TD)、页眉(尽管目前只能直接创建 TD 单元格)、页脚和标题。它避免了每次更改时重新渲染整个表格,从而提高了效率。
使用 `insertRow()` 和 `insertCell()` 等方法,您可以从数据数组构建表格,并通过索引访问单个单元格(例如 `t.rows[1].cells[1]`)。可以使用 `insertRow(-1)` 将行添加到末尾。
虽然有些古怪——例如使用 `-1` 进行追加——但此 API 提供了一个机会。作者建议通过添加事件和改进元素创建等功能来增强它,将表格从简单的布局工具提升为 Web 环境中的真正数据结构。