假设我有一个Web服务器启动并运行API端点(例如.../post
),它允许用户创建一些东西(并保存到数据库中)。有人可以使用循环向该端点发送大量请求,数据库最终会有垃圾数据。
为了防止数据库溢出,保护端点不被某人(黑客)过度使用/过载的最佳做法是什么?
答案 0 :(得分:1)
我建议用户或IP过滤。基本上,跟踪每个请求,如果有人超过某个数字,则不允许进一步请求。
您可以通过跟踪每个用户或IP的请求数量来自行实现,也可以使用一些已构建的代码,如Rack attack。
答案 1 :(得分:0)
一种方法是分发API密钥,以便每个API用户都有自己的密钥可以像密码一样使用,当您发现某个密钥被滥用时,您可以将之前的数据条目撤销到系统。如果你甚至粗略地搜索API安全性,那么你会得到lots of useful links (like this one)。