php頁面禁止刷新的方法?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!
php頁面禁止刷新的方法:首先直接退出代理IP;然后設置刷新的時間段和次數,防止快速刷新;接著設置監控變量,并處理監控結果;最后跳轉至攻擊者服務器地址即可。
php頁面禁止刷新的方法:
方法1:
一小段代碼實現頁面防刷新,可能沒有太大的用途,只是一個思路,供參考。
原理:
在頁面訪問時判斷是否有session,沒有的話直接創建一個session,并設置為當前時間,程序正常向下執行;
如果有session,判斷 session里的時間和當前時間的時間差,如果間隔小于規定的時間,如本例的5分鐘,則中斷程序執行并提示錯誤信息;
如果session里的時間大于當 前的時間,則刷新session中的時間,頁面正常執行。
代碼如下:
session_start(); //啟動session
$timeOutLimit = "300"; //設置時間間斷五分鐘
if (isset($_SESSION["timeout"])) { //判斷是否有session
if (time() - $_SESSION["timeout"] < $timeOutLimit) {
//如果有session 且session時間間隔小于5分鐘 直接die()退出并輸出提示信息。
die("請不要多次刷新當前頁面");
} else { //如果沒有超時,將session時間重置為當前時間。
$_SESSION["timeout"] = time();
}
} else {
$_SESSION["timeout"] = time();
//如果沒有timeout的session,則創建session為當前時間,便于下次訪問頁面時判斷
}
//其它頁面代碼.....方法2:
//代理IP直接退出
empty($_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;
}感謝各位的閱讀!看完上述內容,你們對php頁面禁止刷新的方法大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。