💡 原文中文,约2700字,阅读约需7分钟。
📝

内容提要

本文探讨了 React Server Components 中的 server-only 模块,强调其安全性和构建时检查的重要性,分析了 npm 包的实现,指出如何防止源码泄露及构建工具的处理,确保服务端代码不被客户端访问。

🎯

关键要点

  • 本文探讨了 React Server Components 中的 server-only 模块,强调其安全性和构建时检查的重要性。
  • 提到 CVE-2025-55182 和 CVE-2025-55183 漏洞,强调源码泄露的风险。
  • 最佳实践建议在服务端代码顶部加上 import 'server-only' 来避免源码泄露。
  • 运行时检查方法不够安全,构建工具会将代码打包进浏览器,导致源码泄露。
  • server-only 模块通过构建时拦截实现安全,使用条件导出模式。
  • server-only 模块的 npm 页面极简,利用 Node.js 的条件导出实现精分 npm 包。
  • 在构建时,server-only 模块被服务端引入时为空文件,客户端引入时则报错。
  • 现代构建工具能处理类型引入,避免触发 server-only 的解析逻辑。
  • 开发 npm 包时需注意 react-server 的导出条件,以防止误用到前端。
➡️

继续阅读