-
设置IP访问限制:
- 定义每个IP地址在指定时间内的请求限制次数。
- 定义时间限制(秒)。
-
获取用户IP地址:
- 使用
$_SERVER['REMOTE_ADDR']
获取用户的IP地址。
- 使用
-
存储访问记录:
- 使用文件存储每个IP地址的访问时间和请求次数。
- 文件路径和文件名使用IP地址的SHA1哈希值,确保唯一性。
-
读取和更新访问记录:
- 如果文件不存在,初始化访问时间和请求次数。
- 如果文件存在,读取当前的访问时间和请求次数。
-
检查访问次数:
- 如果用户在指定时间内请求次数超过限制,返回429状态码。
- 如果请求次数未超过限制,更新访问时间和请求次数。
-
保存更新后的访问记录:
- 将更新后的访问时间和请求次数写入文件。
-
执行正常业务代码:
- 在防护机制通过后,执行正常的业务代码。