网站搜索

reactjs - 在 NextJS 中混合客户端和服务器端代码安全吗?


喜欢使用 NextJs,因为它能够轻松在同一个框架中管理客户端和服务器端代码。

显然我知道 NextJS 会将它知道如何分离的代码分开(例如 getServerSideProps),但在同一个文件中同时拥有客户端和服务器端的变量/辅助函数是否安全?

例如,假设我有一个名为 constants.ts 的文件,位于代码库的某个位置。如果该文件包含如下内容:

/* constants.ts */

export const REALLY_SECRET_KEY = 'XXX'

export const NAME_OF_MY_SITE_FOR_USE_IN_FRONTEND_CODE = 'Mixing it Up'

只要我不从客户端相关的代码部分导入,NextJS 是否能相当好地防止泄露 REALLY_SECRET_KEY?它的树摇(tree-shaking)到底有多“安全”?

我知道将东西分开存放有实际原因;既有组织上的考虑,也能减少导入错误。但我很好奇,这会成为一个严重的安全问题吗?

答案#1

是的,它做得很好,但要注意敏感数据!始终清楚自己在做什么。这个工具可能会有帮助。只需复制你的代码,看看哪些内容进入了客户端包。