防止网页过快刷新
1,为什么防止网页过快刷新
1,网页过快刷新,会增加服务器压力
2,有一定作用防止cc攻击
2,原理代码
<?php
header('content_type:text/html;charset=utf-8');
//十秒钟之内刷新次数不能多于五次
session_start();
//防止网页点击(刷新)过快
$cur_time = time();
if($_SESSION['last_time']){
$_SESSION['click_refresh'] += 1;
}else{
$_SESSION['click_refresh'] = 1;
$_SESSION['last_time'] = time();
}
if($cur_time - $_SESSION['last_time'] <= 10){
if($_SESSION['click_refresh']>=5){
die('click fast');
}
}else{
$_SESSION['last_time'] = $cur_time;
$_SESSION['click_refresh'] = 0;
}
验证开始的初始化和结束的清零都在判断后进行,
因为不知道哪次刷新是开始
3,CC攻击
简介
攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源
耗尽,不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)
的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理
不完的连接直至就网络拥塞,正常的访问被中止,一直到宕机崩溃
防止
1.session记录
生成一个session保存的token,收到表单的时候进行对比,不正
确则提示错误或者跳转
2.验证码
原理和第一种一样,只是session数据不作为隐藏域提交,而是让用
户填写,大多数网站都采用文字验证码和图片验证码,图片验证码安
全性高。
3.IP绑定
提交数据后,先从IP表里检索客户端IP,如果有,并且没有过期,
那么报错,否则写入数据库,然后再取客房端IP,把IP写入数据库
4.cookie:
客户提交后处理程序先检索客户端有没有设置cookie,如果有,
则不重复提交;如果没有,则写数据,再写个cookie;