Php 保护slim 3、RESTful API

Php 保护slim 3、RESTful API,php,api,security,ddos,slim-3,Php,Api,Security,Ddos,Slim 3,我知道如何实现基于令牌的身份验证。但我担心的是用户的行为,如注册、登录或验证,以防止攻击机器人。我可以想象一个机器人通过伪造的电话号码发出请求,我的短信或邮件服务器将响应所有请求!或者,数据库中的users表中有数千个注册用户,这些用户都是伪造的且未经验证。我知道一些防火墙策略可以在网络层阻止这些类型的攻击和流量。但是,是否可以使用验证码或其他方式保护“未经验证”的HTTP操作 如果是,如何将验证码图像从API服务器发送到客户端?生的?如果可以发送验证码,那么如何找到哪个客户端的验证码?会话是否

我知道如何实现基于令牌的身份验证。但我担心的是用户的行为,如注册、登录或验证,以防止攻击机器人。我可以想象一个机器人通过伪造的电话号码发出请求,我的短信或邮件服务器将响应所有请求!或者,数据库中的users表中有数千个注册用户,这些用户都是伪造的且未经验证。我知道一些防火墙策略可以在网络层阻止这些类型的攻击和流量。但是,是否可以使用验证码或其他方式保护“未经验证”的HTTP操作

如果是,如何将验证码图像从API服务器发送到客户端?生的?如果可以发送验证码,那么如何找到哪个客户端的验证码?会话是否有帮助


感谢您的关注。

您可以实施一种形式的CSRF(跨站点请求伪造)陷阱来避免这种情况。我使用CSRF和蜜罐字段的组合。以下是基本情况:

  • 服务器通过一个隐藏类型输入标记填充一个字段,该标记包含一个动态设置并作为会话变量存储在服务器上的值
  • 表单还包含使用CSS隐藏的文本字段(type=“text”或textarea)
  • 发布表单us时,隐藏值(CSRF)标记必须与保存的会话版本匹配,并且
  • 蜜罐区域必须是空的
  • 如果测试失败,我会用401或404回答


    注册机器人通常会填满蜜罐区域,有些机器人足够聪明,可以绕过CSRF-我会记录所有未通过这些测试的尝试,并捕获相当多的机器人尝试。

    您可以实施一种形式的CSRF(跨站点请求伪造)捕获来避免这种情况。我使用CSRF和蜜罐字段的组合。以下是基本情况:

  • 服务器通过一个隐藏类型输入标记填充一个字段,该标记包含一个动态设置并作为会话变量存储在服务器上的值
  • 表单还包含使用CSS隐藏的文本字段(type=“text”或textarea)
  • 发布表单us时,隐藏值(CSRF)标记必须与保存的会话版本匹配,并且
  • 蜜罐区域必须是空的
  • 如果测试失败,我会用401或404回答


    注册机器人通常会填满蜜罐区域,有些机器人足够聪明,可以绕过CSRF-我会记录所有未通过这些测试的尝试,并捕获相当多的机器人尝试。

    想象一下,我在另一台服务器上有一个用于用户注册的web界面。通过快速查看HTML和JS的源代码,攻击者可以准备进行有效的攻击。情况总是这样。目标是尽可能减少错误条目。在我的例子中,CSRF字段名以及值在每次迭代中都会发生变化。蜜罐领域没有改变。许多注册机器人在不检查表单的情况下发布了多次,他们只是重复发送帖子。其他人检查表单中的字段并填写它们。您还可以在此基础上实现验证码和其他启发式方法。如果你这样做,我建议你使用一个已经建立的服务,而不是你自己的,如果你允许的话(例如Google Recaptcha),因为他们非常成熟。想象一下,我在另一台服务器上有一个用于用户注册的web界面。通过快速查看HTML和JS的源代码,攻击者可以准备进行有效的攻击。情况总是这样。目标是尽可能减少错误条目。在我的例子中,CSRF字段名以及值在每次迭代中都会发生变化。蜜罐领域没有改变。许多注册机器人在不检查表单的情况下发布了多次,他们只是重复发送帖子。其他人检查表单中的字段并填写它们。您还可以在此基础上实现验证码和其他启发式方法。如果你这样做了,我建议你使用一个已经建立的服务,而不是你自己的,如果你被允许的话(例如Google Recaptcha),因为他们非常成熟。