博客 · 第 13 页
关于工程、设计与一些随手记录。
Next.js 增量缓存路径遍历 RCE:CVE-2026-75604 分析
一个没被转义的反斜杠,在 Windows 上把增量缓存变成任意文件读写;再用泄露的 Server Action 加密密钥伪造请求,借 React Flight 的属性链走到 Function。
React Router 原型污染链式 RCE:CVE-2026-42211 分析
turbo-stream v2 在 TYPE_ERROR 分支里动态调用构造函数却不校验来源。只要应用里已存在一个原型污染,这条路径就能被接上 Function,把两步中危拼成 RCE。
head 只有一个来源:SiteHead、JSON-LD 转义与 hreflang
三个 HTML 外壳共用一个组件输出全部 head 标签,数据在 server 层组装。以及一个必须记住的细节:JSON-LD 里的尖括号要转义成反斜杠 u003c。
静态站上线不是「把文件夹传上去」:缓存、压缩、以及诚实的 404
纯静态托管的坑几乎全在响应头上。哪些文件能永久缓存、哪些一秒都不能缓存、以及为什么静态站绝对不能做 SPA 式回退。
用 View Transitions 做主题切换水波纹
主题切换时用一个从点击点扩散的圆揭示新主题。半径要够到屏幕最远的角,动画结束必须清掉自定义属性,否则会污染下一次。
构建期分页:静态站的翻页为什么不该用查询参数
列表分页在构建时切成静态页,第 N 页是一个真实路由。没有客户端分页逻辑,也不用查询串,翻页就是纯链接跳转。
