ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルで悪意のあるページの更新を防ぐコードの概要

php_PHP チュートリアルで悪意のあるページの更新を防ぐコードの概要

WBOY
WBOYオリジナル
2016-07-21 15:15:11983ブラウズ

悪意のあるページ ブラッシングを防ぐ原則は、

はページ間で渡される検証文字列を要求し、
ページ生成時に文字列をランダムに生成し、
はすべての接続で必須パラメータとして渡されることです。同時に、この文字列をセッションに保存します。

リンクまたはフォームをクリックしてページに入ると、セッション内の認証コードがユーザーが送信したものと同じであるかどうかが判断され、同じである場合は処理されます。同様の場合は、繰り返しリフレッシュされたものとみなされます。
処理が完了すると、新しいページを生成するための確認コードが再生成されます

コード

コードをコピー コードは次のとおりです:

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

tru​​e

http://www.bkjia.com/PHPjc/326178.html

技術記事
悪意のあるページ ブラッシングを防ぐ原則は、ページを生成するときに検証文字列を渡すことです。文字列はランダムに生成され、すべての接続で必須パラメーターとして渡されます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHPMAILER_PHP チュートリアルを使用した電子メール送信のサンプルアプリケーション次の記事:PHPMAILER_PHP チュートリアルを使用した電子メール送信のサンプルアプリケーション

関連記事

続きを見る