小程序不支持session传递数据,可通过php扩展apcu限制提交次数
2024-10-14 Umming 极致cms 评论(0) 浏览(181)
// 通过apcu限制提交次数 // 设置时间窗口(秒)和最大请求次数 $windowSize = 60; // 1分钟 $maxRequests = 2; // 最多10次请求 // 获取当前用户标识(例如使用 IP 地址) $userIdentifier = $_SERVER['REMOTE_ADDR']; // 构建缓存键 $cacheKey = "rate_limit:$userIdentifier"; // 获取当前时间戳 $currentTime = time(); // 从 APCu 中获取缓存数据 $cacheData = apcu_fetch($cacheKey); if ($cacheData) { // 如果缓存存在,更新请求次数和时间窗口 list($requestCount, $startTime) = $cacheData; if ($currentTime - $startTime < $windowSize) { // 如果仍在时间窗口内,检查请求次数是否超过限制 if ($requestCount >= $maxRequests) { JsonReturn(['code'=>1,'msg'=>'您操作过于频繁,请稍后再尝试!']); } else { // 请求次数未超过限制,更新请求次数 $requestCount++; } } else { // 如果超出时间窗口,重置请求次数和开始时间 $requestCount = 1; $startTime = $currentTime; } } else { // 如果缓存不存在,初始化请求次数和开始时间 $requestCount = 1; $startTime = $currentTime; } // 更新 APCu 缓存 apcu_store($cacheKey, [$requestCount, $startTime]); // 通过apcu限制提交次数
标签: php代码
上一篇: 小程序不支持session,php使用apcu扩展实现验证码功能
下一篇: js获取视频时长
本文链接:https://www.umming.com/jizhicms/332.html
声明:本站信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!
也许你还会对下面的内容感兴趣:
发表评论: