防止重复提交的代码片段

作者: 乘风御上者 分类: PHP 发布时间: 2019-10-26 16:30

项目中防止用户在短时间内重复请求某个接口,尤其是一些敏感操作,像商城中用户购买产品,发生什么不可控的事情可是会丢饭碗的。

所以好的措施一样都不能少,粘一下方便使用的thinkphp项目用到的代码片段。

// 判断同一IP短时间重复请求
// 接口开始处来一段保命手段
$ipKey = '_REGISTER_IP_ARRAY_';
$ipArray = Cache::get($ipKey);
$ipArray = is_array($ipArray) ? $ipArray : [];
$ip = $this->request->ip();
if (!in_array($ip, $ipArray)) {
    $ipArray[] = $ip;
    Cache::set($ipKey, $ipArray, 3);
} else {
    $this->error('请求重复');
}
// 继续小心翼翼。。。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表回复