防止網頁過快刷新
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;