PHP防CC拦截简易代码,采用301跳转方式

来源:V站

<?php
empty($_SERVER['HTTP_VIA']) or exit('Access Denied');
$seconds = 10; //时间段[秒]
$refresh = 5; //刷新次数
//设置监控变量
$cur_time = time();
if(isset($_SESSION['last_time'])){
$_SESSION['refresh_times'] += 1;
}else{
$_SESSION['refresh_times'] = 1;
$_SESSION['last_time'] = $cur_time;
}
//处理监控结果
if($cur_time - $_SESSION['last_time'] < $seconds){
if($_SESSION['refresh_times'] >= $refresh){
//跳转验证
$url='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$msg=mb_convert_encoding("<title>安全检查</title><h3>检测到CC攻击,正在进行浏览器安全检查!</h3>","UTF-8","GBK");
exit($msg."<meta http-equiv='refresh' content='5;url={$url}'>");//5是定时跳转的时间,后期可以根据时间段调整跳转时间
}
}else{
$_SESSION['refresh_times'] = 0;
$_SESSION['last_time'] = $cur_time;
}
?>

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

1 条评论
登录 后参与评论

相关文章

来自专栏康怀帅的专栏

LNMP Docker 安装配置

目标:一条命令建立 LNMP 环境(MySQL、Redis、PHP-fpm、Nginx,etc)。这里只简单列举单容器运行方式。

3721
来自专栏运维技术迷

SQL复习之删除数据库

本次记录删除数据库的两种方法,第一种为直接删除;第二种为先查询再删除。 删除数据库,语句如下: use master--指向当前操作的数据库 go --第一种...

3096
来自专栏Python爬虫与数据挖掘

在Navicat中如何新建数据库和表并做查询

上一篇文章,小编给大家分享了在Navicat中如何远程连接数据库,没有来得及上车的小伙伴可以戳这篇文章:在Ubuntu14.04中配置mysql远程连接教程。今...

642
来自专栏黑白安全

Sqlmap的使用

Sqlmap是开源的自动化SQL注入工具,由Python(2)写成,具有如下特点:

1003
来自专栏写写代码吃吃瓜

Tornado中sqlalchemy使用

2136
来自专栏SAP最佳业务实践

SAP最佳业务实践:ETO–项目装配(240)-19完成单项物料单的生产

CO11N完成单项物料单的生产 在此步骤中,确认单项物料单的生产工作。 角色车间控制员 1. 在 输入生产订单的计工单 屏幕上,在字段订单输入记录的生产订单编号...

3284
来自专栏weixuqin 的专栏

Mac 下安装 MySQL 经历

2619
来自专栏程序员的SOD蜜

LJMM平台( Linux +Jexus+MySQL+mono) 上使用MySQL的简单总结

近准备把PDF.NET框架的开源项目“超市管理系统”移植到Linux上跑(演示地址:http://221.123.142.196),使用Jexus服务器和MyS...

1869
来自专栏康怀帅的专栏

LNMP Docker 安装配置

目标:一条命令建立 LNMP 环境(MySQL、Redis、PHP-fpm、Nginx,etc)。 这里只简单列举单容器运行方式,实际请使用 Docker Co...

3025
来自专栏Jerry的SAP技术分享

如何使用代码获得一个function module的Where Used List

如果要获得一个function module的Where Used List,我们通常用的办法是使用ABAP workbench里提供的功能。

4088

扫码关注云+社区