1. 设置IP访问限制

    • 定义每个IP地址在指定时间内的请求限制次数。
    • 定义时间限制(秒)。
  2. 获取用户IP地址

    • 使用$_SERVER['REMOTE_ADDR']获取用户的IP地址。
  3. 存储访问记录

    • 使用文件存储每个IP地址的访问时间和请求次数。
    • 文件路径和文件名使用IP地址的SHA1哈希值,确保唯一性。
  4. 读取和更新访问记录

    • 如果文件不存在,初始化访问时间和请求次数。
    • 如果文件存在,读取当前的访问时间和请求次数。
  5. 检查访问次数

    • 如果用户在指定时间内请求次数超过限制,返回429状态码。
    • 如果请求次数未超过限制,更新访问时间和请求次数。
  6. 保存更新后的访问记录

    • 将更新后的访问时间和请求次数写入文件。
  7. 执行正常业务代码

    • 在防护机制通过后,执行正常的业务代码。