php 防止恶意请求

该文介绍了多种Web应用的安全防护措施,包括使用验证码防止自动化攻击,限制请求频率,检查IP归属地,对可疑用户进行额外验证,使用黑名单,启用签名和Token验证,通过HTTPS加密通信,代码混淆增加破解难度,实施风控策略,保护数据安全以及利用恶意IP库进行过滤。
摘要由CSDN通过智能技术生成

看到一篇不错的文章虽然暂时用不到。记录一下

原文地址:https://www.codenong.com/cs106148238/

1 / 验证码(最简单有效的防护),采用点触验证,滑动验证或第三方验证码服务,普通验证码很容易被破解 难的比如12306

2 / 频率,限制同设备,同IP等发送次数,单点时间范围可请求时长

3 / 归属地,检测IP所在地是否与手机号归属地匹配;IP所在地是否是为常在地

4 / 可疑用户,对于可疑用户要求其主动发短信(或其他主动行为)来验证身份

5 / 黑名单,对于黑名单用户,限制其操作,API接口直接返回success,1可以避免浪费资源,2混淆黑户判断

6 / 签名,API接口启用签名策略,签名可以保障请求URL的完整安全,签名匹配再继续下一步操作

7 / token,对于重要的API接口,生成token值,做验证

8 / https,启用https,https 需要秘钥交换,可以在一定程度上鉴别是否伪造IP

9 / 代码混淆,发布前端代码混淆过的包

10 / 风控,大量肉鸡来袭时只能受着,同样攻击者也会暴露意图,分析意图提取算法,分析判断是否为恶意 如果是则断掉;异常账号及时锁定;或从产品角度做出调整,及时止损。

11 / 数据安全,数据安全方面做策略,攻击者得不到有效数据,提高攻击者成本

12 / 恶意IP库,过滤恶意IP

public function checkRequest($ip){
        #一分钟接口调用只能10次
        $redis= new \Redis();
        $redis->open('xxx',6379);//服务器连接的Ip与端口号
        $redis->auth('xxx');//redis服务的密码
        $redis->select(1);//选择连接的redis,默认redis的库有16个
//        $redis->flushAll();exit;//清空redis的所有库
        $lock_time=$redis->zScore('user_list',$ip);//返回有序集中key中成员member的score
        if(time()-$lock_time<3000){
            return 1;//在黑名单中
        }else{
            $redis->zRem('user_list',$ip);//redis中zRem命令用于移除有序集合中的一个或者是多个成员,不存在的成员将被忽略,当key存在但是不是有序集合类型是,返回一个错误
        }
        #记录访问次数
        $ip_value=$redis->get($ip);//get命令用于获取指定的keyz值,如果key值不存在返回null
        if(!$ip_value){
            #设置key自增
            $redis->incr($ip);//将key中存储的数字值增1
            #设置过期时间为3000秒
            $redis->expire($ip,3000);//给key值设置生存时间
        }else{
            $redis->incr($ip);
        }
        #集合里边的元素不会重复 字符串
        #把ip当做key 存入redis 存5分钟
        if($ip_value>10){
            #使用有序集合
            $redis->zAdd('user_list',time(),$ip);//命令用于将一个或者是多个于是怒以及分数值加入到有序集合中
            return 2;//调用接口频繁
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值