首页 > php教程 > php手册 > 正文

PHP防CC攻击与防止快速刷新页面例子

php中文网
发布: 2016-05-25 16:41:42
原创
1802人浏览过

cc攻击攻击的原因就是不停的刷新动态页面如php+mysql读写数据库的页面,这样如果刷新比较快可以导致页面卡死或服务器资源使用超量,从而导致服务器挂了,下面给大家整理了一些防止cc攻击的例子.

CC攻击原因

CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃,CC主要是用来攻击页面的,每个人都有这样的体验,当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户,多少线程就是多少用户,不停地进行访问那些需要大量数据操作,就是需要大量CPU时间的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止.

cc攻击刷新页面对我们没有任何意义,要说有意义就是把我们的网站资源使用尽了,防御CC攻击可以通过多种方法,禁止网站代理访问,尽量将网站做成静态页面,限制连接数量,修改最大超时时间等.

PHP实例代码如下:

立即学习PHP免费学习笔记(深入)”;

<?php
//代理IP直接退出
emptyempty($_SERVER['HTTP_VIA']) or exit('Access Denied');
//防止快速刷新
session_start();
$seconds = '3'; //时间段[秒]
$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) {
        //跳转至攻击者服务器地址
        header(sprintf('Location:%s', 'http://127.0.0.1'));
        exit('Access Denied');
    }
    
} else {
    $_SESSION['refresh_times'] = 0;
    $_SESSION['last_time'] = $cur_time;
}
?>
登录后复制

防火墙是防CC攻击一个非常不错的解决方案,不但不会对服务器有任何影响同时能有效的防止CC攻击.

Getfloorplan
Getfloorplan

创建 2D、3D 平面图和 360° 虚拟游览,普通房间变成梦想之家

Getfloorplan 148
查看详情 Getfloorplan

推荐小站长可使用安全狗来做防CC攻击或使用linux iptalbs来防止CC攻击,同样像我的服务器有机房防火墙会自动拦截这些类型的攻击.


教程地址:

欢迎转载!但请带上文章地址^^

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号