ホームページ  >  記事  >  バックエンド開発  >  PHPページの更新を無効にする方法

PHPページの更新を無効にする方法

coldplay.xixi
coldplay.xixiオリジナル
2020-10-05 13:07:402601ブラウズ

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トレーニングコラムへ!

以上がPHPページの更新を無効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。