假设我有一个 Web 服务器,并使用 API 端点(例如
.../post
)运行,它允许用户创建某些内容(并保存到数据库中)。有人可以使用循环向该端点发送大量请求,数据库最终将有垃圾数据。
为了防止数据库溢出,保护端点不被某人(黑客)过度使用/超载的最佳实践是什么?
我会推荐用户或 IP 过滤。基本上,跟踪每个请求,如果有人超过一定数量,则不允许进一步的请求。
您可以通过跟踪每个用户或IP的请求数量来自己实现它,或者您可以使用一些已经构建的代码,例如Rack攻击。
一种方法是分发 API 密钥,这样每个 API 用户都有自己的密钥,可以像密码一样使用,当您发现密钥被滥用时,您可以撤销他们之前在系统中输入的数据。如果您粗略地在 google 上搜索 API 安全性,您会得到很多有用的链接(如这个)。