如何保证我的 Node js 端点安全并且只能从我的网站访问?

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

我的端点编码为
Nodejs
...我使用以下代码来保证它们的安全...

const corsOption = {
    origin: ['https://www.mywebsite.com'],
};
app.use(cors(corsOption));

if (host !== "myendpoint.com") {
  return res.status(403).json({ message: "forbidden access" });
}

这些会保证我的端点安全吗...还是我必须为我的端点做更多的事情来保证它们的安全...我不希望机器人或其他任何人使用它...我知道它们是公开的,但是我想限制访问...请提供任何帮助或建议???

谢谢你

javascript node.js express cors
3个回答
1
投票

为了确保您可以控制谁可以访问您的端点,您可以设置令牌身份验证。 当您向端点发送请求时,标头应包含:

Authorization: Token {your token}

在您的端点中,您可以检查令牌是否已授权(通过将授权令牌存储在数据库中)。如果令牌无法识别,您可以发回 403 错误。


1
投票

如果您的网站访问您的端点,这意味着可以显示您网站的任何浏览器也必须能够访问您的端点。请求不是由您的网站发出的,而是由访问您网站的浏览器发出的。

您必须首先询问您想要限制访问的程度:

    限制您通过邮件向其发送密码的个人已知用户,然后他们必须将密码输入您的网站(“登录”),然后才能向您的端点发出任何请求。
  • 仅限自行注册的用户。世界上任何人都可以自行注册吗?还是需要通过电子邮件地址进行确认?
  • 限制可以使用 Google(或 Facebook,或...)帐户登录的用户。
另请参阅

将社交登录(使用 Google 登录)添加到现有电子邮件/密码应用程序和数据库的最佳方式是什么?


-1
投票
您可以在 Node js 应用程序中实现用户身份验证和授权来限制访问。 为此,您可以使用

jsonwebtoken

 npm 包。

在 google 上查找 John Smilga 的 Node 和 Express 项目,获取包含 4 个项目的 10 小时视频。其中一个项目介绍了 JSON Web 令牌以及如何使用它们。我强烈推荐。

您还可以使用

express-rate-limit

 包。有了这个,您应该能够“限制”用户在设定的时间内可以向您的 API 端点发出的请求数量。如果请求超出该限制,则该中间件介入并停止进一步访问(我自己没有在生产中测试它,但看起来不错)

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