TP使用redis验证登录,防止强制破解密码

使用TP自带函数,S函数,

思路:使用一个函数用来验证输入次数;当输入错误是定义一个变量redisa为false,调用一个函数,其这个传过来变量redisa和username来用作缓存时名字;

在登录时,一开始验证登录是否超过5次;之后在验证密码的时候,

1、配置默认redis数据库

 S(array(
            'type'=>'redis',
            'host'=>'IP地址',//redis数据库IP地址
            'port'=>'6379'//默认端口

        ));

2、redisa函数

public function redis($username,$redisa=true)
    {
        S(array(
            'type'=>'redis',
            'host'=>'192.168.153.128',
            'port'=>'6379'
        ));
       $flag =S($username);
       if($flag>=5){
           $this->error="密码错误已超过5次";
           return ;
       }
       //密码验证

        if(!$redisa){

            $num = (int)$flag + 1;//强制转换,将字符串转换为int
           //密码输入错误,把错误次数记录下来,使用redis的字符记录下来
            S($username,$num,1800);
            $this->error= '密码错误';
           return ;
        }

    }


扫描二维码关注公众号,回复: 4652469 查看本文章

示例代码


猜你喜欢

转载自blog.csdn.net/weixin_41213085/article/details/79534405