Skip to content

Commit e517aec

Browse files
committed
docs(community): DNS rebinding 注释补 OS/JVM 缓存 + IP pinning 细节
光换 HC5 / OkHttp + 自定义 DnsResolver 不够——还得把解析到的 IP 直接喂 给 socket connect、Host 头带原域名走 SNI;OS 层 nscd / systemd-resolved 和 JVM networkaddress.cache.ttl 都能留毫秒级残窗口。把这层纹理写进 Javadoc, 免得后来人换个 HttpClient 就以为彻底修好了。
1 parent 5d38df1 commit e517aec

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

src/main/java/com/involutionhell/backend/community/service/OgFetchService.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,13 @@
4949
* 之间把 A 记录从公网 IP 翻到 169.254.169.254。要彻底堵这一层需要换成
5050
* Apache HttpClient 5 或 OkHttp,注入自定义 {@code DnsResolver} 复用同一
5151
* 次解析结果,pin 到 guard 刚验过的 IP 上。属于后续工程化项,不在本 PR 范围。
52+
*
53+
* 补一点:即便换成 HC5 / OkHttp + 自定义 DnsResolver,也要把解析到的 IP
54+
* 直接交给 socket connect(而不是把 hostname 再传给连接器让它重解析);
55+
* 同时 OS 层 nscd/systemd-resolved 缓存 + JVM {@code networkaddress.cache.ttl}
56+
* 都可能保留毫秒级残窗口。真正的彻底修复必须是“guard 拿到 IP → 直接用该
57+
* IP 建 socket + Host 头带原域名走 SNI”,靠 hostname 一路穿到底的实现都
58+
* 只是缩小窗口、不是关闭窗口。
5259
*/
5360
@Service
5461
public class OgFetchService {

0 commit comments

Comments
 (0)