gpt4 book ai didi

node.js - Nodejs Express,如何在调用我的 API 时限制我网站的每个用户的速率?

转载 作者:太空宇宙 更新时间:2023-11-03 23:55:50 24 4
gpt4 key购买 nike

我有cors安装后只有我的网站被列入白名单,这有多可靠?如果不良行为者不从我的网站调用我的 api,他们仍然可以调用它吗?

接下来我想对我网站上的每个用户进行速率限制(用户未注册或登录),

我想限制每个用户每秒发出的请求不超过 1 个。

如何识别每个用户?那么如何限制每个用户呢?

最佳答案

这里有太多单独的问题打包在一起。我会解决我能解决的问题:

I have cors installed and only my website is whitelisted, how reliable is this? Can bad actors still call my api if they are not calling it from my website?

CORS 仅适用于合作客户端。这意味着浏览器。任何其他人都可以通过脚本工具或任何编程语言甚至 CURL 之类的工具来使用您的 API。因此,CORS 根本无法阻止不良行为者。它唯一能防止的是人们在他们自己的网页 Javascript 中嵌入对您的 API 的调用。它不会阻止任何人通过他们想要的任何工具以编程方式访问您的 API。而且,他们甚至可以通过代理在自己的网站上使用您的 API。这没有太多保护。

How can each user be identified? and then how can each user be limited?

当每个请求都有身份验证凭据时,速率限制效果最佳,因为这允许您唯一地标识每个请求和/或禁止或延迟凭据那个行为不端的。如果没有凭据,您可以尝试对它们进行 cookie 来跟踪给定用户,但即使在浏览器中也可以阻止或丢弃 cookie 来阻止这种情况。因此,如果没有任何类型的身份验证凭据,您只能使用请求的 IP 地址。对于某些用户(例如家庭用户)来说,这可能就足够了。但是,对于企业用户来说,许多用户可能会显示为相同的企业 IP 地址(由于其 NAT 或代理的工作方式),因此您无法仅通过 IP 地址区分大公司的一个用户和另一个用户。如果一家公司的大量用户同时使用该网站,您可能会错误地触发速率限制。

关于node.js - Nodejs Express,如何在调用我的 API 时限制我网站的每个用户的速率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57246323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com