Mysql codeigniter-如果每y次超过x次,则阻止ip

Mysql codeigniter-如果每y次超过x次,则阻止ip,mysql,apache,codeigniter,security,ddos,Mysql,Apache,Codeigniter,Security,Ddos,如果IP在Y时间内访问我的项目超过X次,是否有“智能”方法阻止它?我知道建议的方法是从apache级别阻止此类情况,但客户端要求在应用程序级别采取额外的预防措施 有什么建议吗?我考虑的是一个MySQL表,每个IP包含一行和一个随时间变化的请求计数器。但是还有别的吗? 您可以使用$this->input->ip_address()在控制器中获取用户的ip地址 在数据库中保存ip和计数器 要检查访问者是否能够访问您的项目,请使用$this->db->select_sum(“counter”)->ge

如果IP在Y时间内访问我的项目超过X次,是否有“智能”方法阻止它?我知道建议的方法是从apache级别阻止此类情况,但客户端要求在应用程序级别采取额外的预防措施

有什么建议吗?我考虑的是一个MySQL表,每个IP包含一行和一个随时间变化的请求计数器。但是还有别的吗?

  • 您可以使用
    $this->input->ip_address()
    在控制器中获取用户的ip地址
  • 在数据库中保存ip和计数器
  • 要检查访问者是否能够访问您的项目,请使用
    $this->db->select_sum(“counter”)->get(“views_table”)

你的想法是对的。创建一个单独的表,用于跟踪访问您的站点的IP以及使用$\u SERVER['REMOTE\u ADDR']访问您的站点的尝试次数。在application/core文件夹和该控制器的构造函数中调用检查IP和计数该IP尝试的函数,并采取适当的措施。我担心这是否会在每个请求中增加大量的时间开销,因为我们会在每个请求中添加更多的db操作。@Panos开销应降至最低检查数据库中的IP连接计数。一旦他们达到了最大访问限制,您可以将其写入.htaccess文件,这样web服务器就可以执行阻塞,您就不需要为该IP向数据库发出请求。