首页 > 解决方案 > 如何防止机器人向 API 发送垃圾邮件试图攻击易受攻击的端点

问题描述

我的后端有一个 Node 和 Express api,目前它在 Heroku 上运行,在我的日志中,我看到机器人试图以恶意向 api 发送垃圾邮件,试图攻击 和 之类的GET /.env端点GET /.aws-secret。由于这些端点不存在,我的 api 只会简单地返回 404,但我想阻止这些机器人发出所有这些请求。我已经有一个速率限制器,但是看到机器人基本上每天仍然发出请求试图达到一个端点是很烦人的。

我在这里看到了一些关于如何使用 Express 阻止 ip 地址的答案,但我的想法是列出列入黑名单的端点(例如GET /.env)并禁止任何向这些端点发出请求的 ip,除非我没有知道这个解决方案是否理想,摆脱这些试图攻击易受攻击端点的机器人的最佳方法是什么?

标签: javascriptnode.jsapiexpresssecurity

解决方案


解决这个问题的方法可能比疾病更糟糕。

速率限制很有可能阻止有效用户,因为脚本在实现其目标方面往往比人类更持久。

阻止IP地址?您可能想尝试一下。请注意,一个 IP 并不意味着一个人、一个机器或一个脚本。IP 通常在通过同一路由器的许多用户之间共享。这样做将禁止合法用户。

最好的想法是某种验证码机制——通过解决一个对人类来说很容易但对机器来说很难的谜语来证明你是一个人。


推荐阅读