ホームページ >バックエンド開発 >PHPチュートリアル >PHP はフォーム プログラム コードのリモートからの違法な送信を防止します_PHP チュートリアル

PHP はフォーム プログラム コードのリモートからの違法な送信を防止します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:11:14996ブラウズ

リモートからのフォーム送信の防止は、ハッカーがリモートから不正にデータを送信することを防ぎ、Web サイトにセキュリティをもたらす方法です。PHP でのリモートからの違法なフォーム送信を防ぐ例を紹介します。

具体的な方法

1. サイト外へのデータ送信を防ぐPHPメソッド

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

$サーバー名=$HTTP_SERVER_VARS['SERVER_NAME']
$sub_from=$HTTP_SERVER_VARS["HTTP_REFERER"]
$sub_len=strlen($サーバー名); $checkfrom=substr($sub_from,7,$sub_len); if($checkfrom!=$サーバー名){
echo("警告! 外部からデータを送信しています!! すぐに終了してください!!"); 出る
}
?>


外部からのデータの送信を防ぐ必要があるページに上記のコードを挿入すると、URL を直接入力するか、外部ネットワークからこのページにリンクすると、次のメッセージが表示されます。外部からデータを送信しています。 !すぐに終了してください! ! ; このサイトからこのページにリンクするか、フォームから送信する場合、そのようなプロンプトは表示されません。これは主に、一部の偽のフォームがサイトにデータを送信するのを防ぐために行われます。

上記のコードは、curl を介して直接スキップできます。dz フォーラム ログインのメソッドを参照できます。

リモート フォームの送信を処理するより良い方法は、一意の文字列またはタイムスタンプに基づいてトークンを生成し、このトークンをセッション変数とフォームに配置することです。フォームを送信した後、2 つのトークンが一致するかどうかを確認します。一致しない場合は、誰かがフォームのリモート コピーからデータを送信しようとしていることがわかります。

ランダムなトークンを作成するには、以下に示すように、PHP の組み込み md5()、uniqid()、および rand() 関数を使用できます

コードは次のとおりですコードをコピー セッション開始();                                    if ($_POST['submit'] == "行く"){
//トークンをチェックする
If ($_POST['トークン'] == $_SESSION['トークン']){
//strip_tags $name =trip_tags($_POST['name']); $name = substr($name,0,40);
// 潜在的な 16 進文字をすべて削除します
$name = cleanHex($name); //処理を続行....
}その他{
// リモート フォームの投稿処理をすべて停止します
}
}
                                   $token = md5(uniqid(rand(), true)); $_SESSION['トークン']= $トークン;

関数 cleanHex($input){
$clean = preg_replace("![][xX]([A-Fa-f0-9]{1,3})!", "",$input); $clean を返します
}
?>


<フォームアクション="" メソッド="post">






前に書いたASPを書き出しても大丈夫です

ASP で外部からのデータ送信を防ぐ方法

コードは次のとおりです コードをコピー
Server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
Server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
Mid(server_v1,8,len(server_v2))<>server_v2 の場合
Response.write 「警告! 外部からデータを送信しています!! すぐに終了してください
」 応答.終了

の場合は終了 %>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/629612.html技術記事リモート フォーム送信の防止は、ハッカーがリモートから不正にデータを送信するのを防ぎ、Web サイトにセキュリティをもたらす方法です。PHP でリモートからの違法なフォーム送信を防止する例を紹介します。 具体的な方法は…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。