PHP 페이지 새로 고침을 비활성화하는 방법: 먼저 프록시 IP를 직접 종료한 다음 빠른 새로 고침을 방지하기 위해 기간과 새로 고침 횟수를 설정한 다음 모니터링 변수를 설정하고 마지막으로 공격자의 서버 주소로 이동합니다. .
PHP 페이지 새로 고침을 비활성화하는 방법:
방법 1:
페이지 새로 고침을 방지하는 작은 코드 조각으로, 그다지 유용하지 않을 수 있으며 참고용 아이디어일 뿐입니다. .
원리:
페이지에 액세스할 때 세션이 있는지 확인합니다. 그렇지 않은 경우 세션을 직접 생성하여 현재 시간으로 설정하면 프로그램이 정상적으로 실행됩니다.
세션이 있으면 시간을 확인합니다. 세션 시간과 현재 시간의 차이입니다. 간격이 지정된 시간보다 작으면(예: 5분) 프로그램 실행이 중단되고 오류 메시지가 표시됩니다. 세션의 시간이 현재 시간보다 크면 세션의 시간이 새로 고쳐지고 페이지가 정상적으로 실행됩니다.
코드는 다음과 같습니다.
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 training
위 내용은 PHP 페이지 새로 고침을 비활성화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!