如何阻止人们充斥PHP API请求?

时间:2015-05-09 04:12:52

标签: php api http post

我使用的是一个简单的PHP API,它接受请求并连接到MySQL DB来存储/检索用户信息。示例:使用带有用户名和密码的API对HTTP进行登录。

如何防止人们使用请求充斥我的API,可能会在几秒钟内创建数千个帐户。

由于

2 个答案:

答案 0 :(得分:3)

您可以在服务器端提供生成和记住的令牌,该令牌使用您的表单呈现,并在表单发送回您的服务器时进行验证。这可以防止用户只是生成新的帖子请求,而无需从服务器实际请求相应的表单,因为他们需要在您的服务器上生成相应的令牌来完成它。

然后有一个提到的验证码,对于登录表单来说太过分了,但是当涉及到注册新用户时,验证码与令牌的组合对我来说听起来非常好。

<强>更新 我刚刚找到了this article,它通常是关于脚本执行的floot保护。我认为他们的方法和ip跟踪一样好,只要你能够使用memcache或类似的东西加速检查。

答案 1 :(得分:1)

首先,在注册用户时,还要在注册时保存她的IP地址。

如果IP在上次注册后的45分钟内已存在,请拒绝该请求。

另一种方法是Captcha,我个人更喜欢一种不同的方法,我发现它对机器人更有效。

而不是要求用户“键入他们在图像中看到的内容”,并验证他们是人类(或具有复杂图像处理的机器人),

添加另一个字段(例如city),并使用javascript隐藏它。

机器人会将该字段提交给服务器,而人类则不会。

请注意,机器人必须运行javascript才能知道哪些字段是隐藏的,这是一个耗时的过程,他们通常不会这样做。

(见turing halting problem