if ($_POST['submit '] == "go"){
//strip_tags
$name =trip_tags($_POST['name'])
$name = substr($name,0,40);
//潜在的な 16 進数を削除します。文字
$name = cleanHex($name);
//処理を続行します…
}
function cleanHex($input){
$clean = preg_replace(”![][xX]([A-Fa-f0-9 ]{ 1,3})!", "",$input);
return $clean;
}
?>
隠し変数の 1 つがテーブル名 users を公開していることに注意してください。また、create という値を持つアクション フィールドも表示されます。基本的な SQL の経験がある人なら、これらのコマンドがおそらくミドルウェアの SQL エンジンを制御していることがわかります。大混乱を引き起こしたい人は、テーブル名を変更するか、削除などの別のオプションを提供するだけで済みます。
今残っている質問は何ですか?リモートフォーム送信。
リモートフォーム送信
Webの利点は、情報やサービスを共有できることです。欠点は、情報やサービスの共有です。何の躊躇もなく物事を行う人もいます。
フォームを例に挙げてみましょう。誰でも Web サイトにアクセスし、ブラウザ上で [ファイル] > [名前を付けて保存] を使用してフォームのローカル コピーを作成できます。次に、完全修飾 URL (formHandler.php ではなく、フォームはこのサイトにあるため http://www.yoursite.com/formHandler.php) を指すようにアクション パラメーターを変更し、必要な操作を行うことができます。変更を加えて [送信] をクリックすると、サーバーはこのフォーム データを法的な通信フローとして受信します。
まず、$_SERVER['HTTP_REFERER'] をチェックして、リクエストが自分のサーバーからのものであるかどうかを判断することを検討してください。この方法では、ほとんどの悪意のあるユーザーをブロックできますが、最も高度なハッカーをブロックすることはできません。これらの人々は、ヘッダー内の参照元情報を改ざんして、フォームのリモート コピーをサーバーから送信されたように見せかけるほど賢いのです。
リモート フォームの送信を処理するより良い方法は、一意の文字列またはタイムスタンプに基づいてトークンを生成し、このトークンをセッション変数とフォームに入れることです。フォームを送信した後、2 つのトークンが一致するかどうかを確認します。一致しない場合は、誰かがフォームのリモート コピーからデータを送信しようとしていることがわかります。
ランダム トークンを作成するには、以下に示すように、PHP の組み込み md5()、uniqid()、および rand() 関数を使用できます:
リスト 18. リモート フォーム送信に対する防御
コードをコピーします コードは次のとおりです:
session_start();
if ($_POST['submit'] == "go"){
//チェックトークン
if ($_POST['token' ] == $_SESSION[ 'token']){
//strip_tags
$name =trip_tags($_POST['name']);
$name = substr($name,0,40);潜在的な 16 進文字
$ name = cleanHex($name);
//処理を続行します...
}else{
//すべての処理を停止します!
}
}
$token(uniqid(rand) ()、true)) ;
$_SESSION['token']= $token;
function cleanHex($input){
$clean = preg_replace("![][xX]([A-Fa-f0-9] {1,3}) !", "",$input);
return $clean;
}
?>
この手法は、PHP セッションではデータを保存できないため有効です。サーバー間の移行。誰かがあなたの PHP ソース コードを取得し、それを自分のサーバーに移動し、あなたのサーバーに情報を送信したとしても、あなたのサーバーが受け取るのは、空の、または不正な形式のセッション トークンと、最初に提供されたフォーム トークンだけです。これらは一致しないため、リモート フォームの送信は失敗します。
http://www.bkjia.com/PHPjc/323236.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/323236.html技術記事最も基本的な予防策として、外部からの送信に注意を払い、ファイアウォールに対処するための最初のセキュリティ メカニズムを作成する必要があります。 ルール 1: 外部データや入力を決して信用しない Web アプリケーションのセキュリティに関しては...