PHP (http://www.maiziedu.com/course/php/) を開発する場合、Web マスターがフォームを送信できないようにするために、フォームを開いたりデータを送信したりするたびに検証用のトークンを追加する必要があります。確認コードによる方法と何ら変わりはありません。サイト外へのフォームのリモート送信を防ぐ例をいくつか見てみましょう。 例 1: 送信ページを開くたびにトークンを生成し、それをセッションに保存します。フォームが送信されると、現在のトークンの値がセッションと一致しているかどうかを判断します。一致している場合、それは正常な送信です。それ以外の場合は、無効な送信となります。 具体的なコードは次のとおりです: //トークンをチェックする If ($_POST['トークン'] == $_SESSION['トークン']){ //ストリップタグ $name =trip_tags($_POST['name']); $name = substr($name,0,40); //潜在的な 16 進文字をすべて削除します $name = cleanHex($name); // 処理を続行.... }その他{ // リモート フォームの投稿処理をすべて中止します。 } $token = md5(uniqid(rand(), true)); $_SESSION['token']= $token; 関数 cleanHex($input){ $clean = preg_replace("![][xX]([A-Fa-f0-9]{1,3})!", "",$input); $clean を返します } ?> <フォームアクション="" メソッド="post">
フォーム> もう 1 つのわかりやすい方法は、確認コードを使用することです。この確認コードの方法は他の方法と同じです。簡単な例を見てみましょう。 例 2: 確認コードを追加する フォームを送信するときに確認コードを追加すると、水充填機によるデータの送信を効果的に防ぐことができます。ただし、グラフィックスおよび画像認識プログラムがより強力になるにつれて、検証コードの認識はさらに困難になり、一部の小規模サイトでは音声認識も使用されます。 if($_POST['vcode'] != get_vcode()) { exit('検証コードの検証に失敗したため、データベースに保存できません'); } 特定の例に興味のある読者は、インターネット上で多くの関連する検証例を見つけることができます。 このトピックは、2016-4-18 12:28 に Xiaobei によって移動されました |