NextJS API 路由受 API 密钥保护

问题描述 投票:0回答:1

我正在 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 免受黑客攻击。

javascript next.js auth0
1个回答
0
投票

对于大多数项目,使用环境变量的设置可以完美工作,所以我想说你很好。以下是您可能需要采取的一些额外步骤:

  • 设置后端逻辑,防止 DDoS 攻击(黑客向 API 发送大量流量,使其不堪重负)。
  • 检查以确保代码未使用某种形式的清理插入到 API 密钥中,以防止恶意代码在服务器上运行。

无论如何,我都不是安全专家,有数百种方法可以保护您的应用程序。对于大多数小型项目,只需简单的设置就可以了。

许多托管提供商(例如 Vercel)还提供自己的保护措施,防止 DDoS 攻击和其他黑客攻击,因此您可能不需要太担心,除非您从头开始构建所有内容。

© www.soinside.com 2019 - 2024. All rights reserved.