Maison  >  Article  >  développement back-end  >  Comment désactiver l'actualisation de la page php

Comment désactiver l'actualisation de la page php

coldplay.xixi
coldplay.xixioriginal
2020-10-05 13:07:402601parcourir

Comment désactiver l'actualisation de la page PHP : quittez d'abord directement l'adresse IP du proxy ; puis définissez la période de temps et le nombre d'actualisations pour empêcher une actualisation rapide ; puis définissez les variables de surveillance et traitez enfin les résultats de la surveillance ; l'adresse du serveur de l'attaquant.

Comment désactiver l'actualisation de la page php

Comment désactiver l'actualisation de la page php :

Méthode 1 :

Un petit morceau de code pour empêcher l'actualisation de la page n'est peut-être pas d'une grande utilité, c'est juste une idée pour référence.

Principe :

Déterminez s'il y a une session lors de l'accès à la page. Sinon, créez une session directement et réglez-la sur l'heure actuelle

.

S'il y a une session, déterminez le décalage horaire entre l'heure de la session et l'heure actuelle. Si l'intervalle est inférieur à l'heure spécifiée, comme 5 minutes dans cet exemple, l'exécution du programme sera interrompue et une erreur se produira. un message sera demandé ;

Si l'heure de la session est supérieure à l'heure actuelle, actualisez l'heure de la session et la page s'exécutera normalement.

Le code est le suivant :

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为当前时间,便于下次访问页面时判断
}
//其它页面代码.....

Méthode 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;
}

Pour plus d'apprentissage en programmation, veuillez faire attention à formation php Colonne !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn