如何在 sveltekit 1.0 上保护 api 密钥

Bla*_*ank 3 security ghost-blog sveltekit

我正在使用 Ghost,我做了一个集成,我想从前端隐藏 api 密钥。我不相信我可以对 Ghost cms 设置限制(这也可以)。我确实相信 +page.js 文件也在浏览器上运行,所以我对如何实现这一点有点困惑?

Cal*_*win 7

内部 sveltekit 模块$env/static/private文档)是您使用安全 API 密钥的方式。Sveltekit 不允许您将此模块导入到客户端代码中,因此它提供了额外的安全层。.envVite 会自动从文件和构建时加载您的环境变量process.env,并将您的密钥注入到服务器端包中。

import { API_KEY } from '$env/static/private';
// Use your secret
Run Code Online (Sandbox Code Playgroud)

Sveltekit 有 4 个用于访问环境变量的模块

  • $env/static/private(覆盖)
  • $env/static/public服务器和客户端均可访问并在构建时注入(文档
  • $env/dynamic/private由您的运行时适配器提供;只包含不以公共前缀开头的变量,默认为PUBLIC_并且只能由服务器文件导入(文档
  • $env/dynamic/public由您的运行时适配器提供;仅包含以您的公共前缀开头的变量,默认PUBLIC_为(文档