提问人:Santiago Padilla 提问时间:11/18/2023 最后编辑:Brian Tompsett - 汤莱恩Santiago Padilla 更新时间:11/18/2023 访问量:37
NextJS API 路由受 API 密钥保护
NextJS API Route Protected with API Key
问:
我正在用 NextJS 13 制作一个应用程序,我正在使用 API 路由,我想保护它们以防止它们调用应用程序允许范围之外的函数。在我的应用程序中,我使用 Auth0,但我不需要任何保护才能与 Auth 一起使用,因为在应用程序中,无需注册的人可以调用函数。
因此,在我的 .env 中,我添加了一个随机密钥,用于保护我所有的 API 路由。
这是我调用 fetch 时的样子:
const req = await fetch(`${process.env.BASE_URL}/api/${path}`, {
method: method,
headers: {
'Content-Type': 'application/json',
'authorization': process.env.API_KEY!,
},
body: JSON.stringify(body)
})
这是我的 API 路由之一:
export async function DELETE(req: NextRequest) {
try {
// Validate API KEY
const headersInstance = headers()
const authorization = headersInstance.get('authorization')
if (!authorization || authorization !== process.env.API_KEY) throw new Error('Invalid API_KEY')
//
我是保护我的 API 路由的好方法吗?
基本上,我想实现的是保护我的 API 免受黑客攻击。
答:
0赞
aarvinr
11/18/2023
#1
对于大多数项目来说,带有环境变量的设置可以完美地工作,所以我想说你很好。以下是您可能想要执行的一些其他步骤:
- 设置后端逻辑,防止 DDoS 攻击(黑客向 API 发送大量流量,使其不堪重负)。
- 检查以确保代码未使用某种形式的清理插入到 API 密钥中,以防止恶意代码在服务器上运行。
无论如何,我都不是安全专家,有数百种方法可以保护您的应用程序。对于大多数小型项目,只需简单的设置即可。
许多托管服务提供商(例如 Vercel)还提供自己的保护,以防止 DDoS 攻击和其他黑客攻击,因此除非您从头开始构建所有内容,否则您可能不需要担心太多。
评论