サイト外へのリモートフォーム送信を防ぐphpメソッド、phpフォーム送信
この記事の例では、PHP がサイト外へのフォームのリモート送信を防ぐ方法について説明しています。参考のために共有します。具体的な実装方法は以下の通りです
一般的に言えば、ウェブマスターがフォームを送信できないようにすることは、フォームを開いたりデータを送信したりするたびに検証用のトークンを追加することに他なりません。これは、実際には検証コードの方法と何ら変わりません。リモートからの送信を防ぐ方法をいくつか見てみましょう。サイト外へのフォームの送信の例。
例 1: 送信ページを開くたびにトークンを生成し、それをセッションに保存します。フォームが送信されると、現在のトークンの値がセッションと一致しているかどうかを判断します。一致している場合、それは正常な送信です。そうでない場合は、無効な送信となります。
具体的なコードは次のとおりです:
コードをコピーします コードは次のとおりです:
セッション開始();
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">
もう 1 つのわかりやすい方法は、確認コードを使用することです。この確認コードの方法は他の方法と同じです。簡単な例を見てみましょう。
例 2: 確認コードを追加する
フォームを送信するときに確認コードを追加すると、水充填機によるデータの送信を効果的に防ぐことができます。ただし、グラフィックスおよび画像認識プログラムがより強力になるにつれて、検証コードの認識はさらに困難になり、一部の小規模サイトでは音声認識も使用されます。
コードをコピーします
コードは次のとおりです:
if($_POST['vcode'] != get_vcode())
{
exit('認証コードの検証に失敗したため、データベースに保存できません');
}
特定の例に興味のある読者は、インターネット上で関連する検証例を多数見つけることができます。
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
PHP コードを使用して外部 Web サイトがこのサイトにフォームを送信できないようにする方法
確認コードを追加してみてください
2ページ目に変数を追加して渡し、この変数でアクセス禁止かどうかを判定します。
index.php
$i=$_GET['i'];
$servername=$ HTTP_SERVER_VARS[ 'SERVER_NAME'];
$sub_from=$HTTP_SERVER_VARS["HTTP_REFERER"];
$checkfrom=substr($sub_from,10,$sub_len); =$ サーバー名と !$i){
echo("<script>alert('外部からデータを送信しないでください!');window.location.href='login.php';</script>") ;
終了 ;
?>
p.php
<script>window.setTimeout("location='index.php?i=1'",20000)</script>解決しましたが、あまり良くないと思います。笑
これもアイデアです。URL の後の変数は非常に嫌いです。これを非表示のフォーム POST に置き換えることもできます。 。ただし、js を使用して自動的にジャンプすることはできません。
http://www.bkjia.com/PHPjc/897013.html
www.bkjia.com
truehttp://www.bkjia.com/PHPjc/897013.html技術記事サイト外へのフォームのリモート送信を防ぐ PHP の方法、PHP フォームの送信 この記事では、PHP がサイト外へのフォームのリモート送信を防ぐ方法について説明し、参考のために共有します。具体的な実装方法は以下の通りです...