悪意のあるページ ブラッシングを防ぐ原則は、
はページ間で渡される検証文字列を要求し、
ページ生成時に文字列をランダムに生成し、
はすべての接続で必須パラメータとして渡されることです。同時に、この文字列をセッションに保存します。
リンクまたはフォームをクリックしてページに入ると、セッション内の認証コードがユーザーが送信したものと同じであるかどうかが判断され、同じである場合は処理されます。同様の場合は、繰り返しリフレッシュされたものとみなされます。
処理が完了すると、新しいページを生成するための確認コードが再生成されます
コード
コードをコピー コードは次のとおりです:
session_start() ;
$k=$ _GET['k'];
$t=$_GET['t']; //アンチリフレッシュ時間
$ip = get_client_ip(); ($ip.$k. $t);
if(!isset($_SESSION[$allowT]))
{
$refresh = true;
$_SESSION[$allowT] = time(); () - $_SESSION[$allowT]>$allowTime){
$refresh = true;
$refresh = false;
ie6 が 2 回送信される 私もこれに遭遇しました。一般的に、送信の代わりに画像を使用し、画像に submit() がある場合、単なる送信ボタンの場合は 2 回送信されます。二重に送信される状況が発生しました。
それでは整理してみましょう:
方法は基本的に前のものと同じです
受け取ったページは2.phpは2つの部分に分かれており、1つの部分は送信された変数を処理し、もう1つの部分はページを表示します
処理後変数は、 header( "location: " .$_SERVER[ 'PHP_SELF ']) を使用します。 独自のページにジャンプします
この部分は、post 変数がない場合はスキップする必要があります。もちろん、他のページにジャンプすることもできます。
他のページにジャンプしたり戻ったりするときに問題が発生するため、phpファイルで行うことをお勧めします。
前のページで渡された変数が要件を満たしていない場合は、強制的にリターンすることができます
コードをコピーします
コードは次のとおりです:
<script> <div class="codetitle">history.go(-1 ); <span style="CURSOR: pointer" onclick="doCopy('code51720')"></script>
専門家はこのような問題に遭遇しないかもしれませんが、誰もが専門家であるわけではありません。
2.php process
コードをコピー
コードは次のとおりです:
if(isset($_POST))
{変数を受け取るif(変数が要件を満たしていません) <script> History.go( -1); </script> else 操作データ
...
if (操作が完了しました)
header( "location: ".$_SERVER[ 'PHP_SELF ']);スクリプト言語= " JavaScript ">
http://www.bkjia.com/PHPjc/326178.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/326178.html
技術記事
悪意のあるページ ブラッシングを防ぐ原則は、ページを生成するときに検証文字列を渡すことです。文字列はランダムに生成され、すべての接続で必須パラメーターとして渡されます。