>백엔드 개발 >PHP 문제 >PHP 페이지 새로 고침을 비활성화하는 방법

PHP 페이지 새로 고침을 비활성화하는 방법

coldplay.xixi
coldplay.xixi원래의
2020-10-05 13:07:402672검색

PHP 페이지 새로 고침을 비활성화하는 방법: 먼저 프록시 IP를 직접 종료한 다음 빠른 새로 고침을 방지하기 위해 기간과 새로 고침 횟수를 설정한 다음 모니터링 변수를 설정하고 마지막으로 공격자의 서버 주소로 이동합니다. .

PHP 페이지 새로 고침을 비활성화하는 방법

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[&#39;HTTP_VIA&#39;]) or exit(&#39;Access Denied&#39;);
//防止快速刷新
session_start();
$seconds = &#39;3&#39;; //时间段[秒]
$refresh = &#39;5&#39;; //刷新次数
//设置监控变量
$cur_time = time();
if(isset($_SESSION[&#39;last_time&#39;])){
    $_SESSION[&#39;refresh_times&#39;] += 1;
}else{
    $_SESSION[&#39;refresh_times&#39;] = 1;
    $_SESSION[&#39;last_time&#39;]     = $cur_time;
}
//处理监控结果
if($cur_time - $_SESSION[&#39;last_time&#39;] < $seconds){
    if($_SESSION[&#39;refresh_times&#39;] >= $refresh){
        //跳转至攻击者服务器地址
        header(sprintf(&#39;Location:%s&#39;, &#39;http://127.0.0.1&#39;));
        exit(&#39;Access Denied&#39;);
    }
}else{
    $_SESSION[&#39;refresh_times&#39;] = 0;
    $_SESSION[&#39;last_time&#39;] = $cur_time;
}

프로그래밍에 대해 더 자세히 알고 싶다면
php training

칼럼을 주목해주세요!

위 내용은 PHP 페이지 새로 고침을 비활성화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.