ホームページ > バックエンド開発 > PHPチュートリアル > サイト外へのリモート フォーム送信を妨げる PHP の例

サイト外へのリモート フォーム送信を妨げる PHP の例

WBOY
リリース: 2016-07-25 08:44:09
オリジナル
1215 人が閲覧しました
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 によって移動されました




ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート