我使用的是一个简单的PHP API,它接受请求并连接到MySQL DB来存储/检索用户信息。示例:使用带有用户名和密码的API对HTTP进行登录。
如何防止人们使用请求充斥我的API,可能会在几秒钟内创建数千个帐户。
由于
答案 0 :(得分:3)
您可以在服务器端提供生成和记住的令牌,该令牌使用您的表单呈现,并在表单发送回您的服务器时进行验证。这可以防止用户只是生成新的帖子请求,而无需从服务器实际请求相应的表单,因为他们需要在您的服务器上生成相应的令牌来完成它。
然后有一个提到的验证码,对于登录表单来说太过分了,但是当涉及到注册新用户时,验证码与令牌的组合对我来说听起来非常好。
<强>更新强> 我刚刚找到了this article,它通常是关于脚本执行的floot保护。我认为他们的方法和ip跟踪一样好,只要你能够使用memcache或类似的东西加速检查。
答案 1 :(得分:1)
首先,在注册用户时,还要在注册时保存她的IP地址。
如果IP在上次注册后的45分钟内已存在,请拒绝该请求。
另一种方法是Captcha,我个人更喜欢一种不同的方法,我发现它对机器人更有效。
而不是要求用户“键入他们在图像中看到的内容”,并验证他们是人类(或具有复杂图像处理的机器人),
添加另一个字段(例如city),并使用javascript隐藏它。
机器人会将该字段提交给服务器,而人类则不会。
请注意,机器人必须运行javascript才能知道哪些字段是隐藏的,这是一个耗时的过程,他们通常不会这样做。