前端安全的第一道口子,从来不是 XSS 漏洞,是信任错位
前端安全的第一道口子,从来不是 XSS 漏洞,是信任错位 复盘过的 XSS 事故里,多数不是「忘了转义」,而是「认为这块内容是可信的」。转义只能治症状。真正要修的是:谁有权决定这段 HTML 该长什么样。 一、dangerouslySetInnerHTML 这个名字其实很好Rea…
阅读全文 →前端安全的第一道口子,从来不是 XSS 漏洞,是信任错位 复盘过的 XSS 事故里,多数不是「忘了转义」,而是「认为这块内容是可信的」。转义只能治症状。真正要修的是:谁有权决定这段 HTML 该长什么样。 一、dangerouslySetInnerHTML 这个名字其实很好Rea…
阅读全文 →原生控件回来了:Popover、dialog 与可定制 select 正在吃掉半个组件库 过去十年,前端组件库最稳定的一块收入是「把浏览器的丑控件包一层」。现在浏览器自己把这个活干了——而且干得比大多数库更好,因为它免费用了无障碍和顶层渲染。 一、组件库里最没技术含量的那部分打开…
阅读全文 →INP 取代 FID 之后,前端性能的敌人换了一个 FID 只测「按下到开始响应」那一下,通常几十毫秒,人人都能过。INP 测「按下到画面真的变了」——它把过去那些”响应很快但卡住”的问题全暴露了出来。 一、FID 为什么会被淘汰FID(First Input Delay)的测量…
阅读全文 →本地优先不是离线兜底:CRDT 改变了前端对「数据」的假设 大多数应用把数据库放在服务器,前端只是它的一个远程终端。本地优先把这句话反过来:数据先属于这台设备,同步是后来的事。 一、两种模型,两种前端服务器优先(现在 95% 的应用): 1用户操作 → API 请求 → 服务器校…
阅读全文 →Rolldown 转正之后:打包器的 Rust 竞赛,赢家其实不是速度 esbuild 用 Go 把打包速度提高了十倍,然后大家发现 CI 只快了 40 秒。Rolldown 换成 Rust、走 Rollup 兼容路线,这一轮的胜负手不在毫秒,在生态兼容。 一、先厘清这几家的关系…
阅读全文 →Web Components 终于能服务端渲染了:Declarative Shadow DOM 改变了什么 Web Components 被唱衰了快十年,核心理由只有一条:它没法 SSR,所以首屏空白、SEO 归零。Declarative Shadow DOM 把这条理由消掉了。…
阅读全文 →容器查询落地三年后:响应式的单位从「屏幕」变成了「组件」 @media 问的是「窗口多宽」,@container 问的是「我被放进了多大的地方」。这个差看着只是换了个参照物,实际把组件库的设计前提整个换掉了。 一、@media 的根本缺陷:组件不知道自己在哪一个卡片组件,在首页三…
阅读全文 →Astro 默认零 JS 的内容框架:组件先服务端渲染,需要交互的地方才按需水合,Lighthouse 分数不需要优化技巧 项目速览 项目 内容 仓库 withastro/astro 语言 TypeScript 协议 MIT 形态 内容驱动框架(SSG / S…
阅读全文 →Biome Rust 写的一体化 JS/TS 工具链:格式化与 Lint 合一,一条命令修完,配置只剩一个文件 项目速览 项目 内容 仓库 biomejs/biome 语言 Rust 协议 MIT 形态 单体 CLI(formatter + linter) 前…
阅读全文 →Open WebUI 自托管的 ChatGPT 级界面,接 Ollama 或任意 OpenAI 兼容后端,多人、多模型、可管控 项目速览 项目 内容 仓库 open-webui/open-webui 语言 TypeScript / Python 协议 MIT(…
阅读全文 →