上記のコードは検出に使用されますユーザー名またはパスワードが正しいかどうかは正しいですが、機密コードを悪意のある攻撃者に送信した場合、その結果は想像できます 。注射を判断するには2つの方法があります。 1. フォームのテキストボックスに「or‘1'=1」または「and 1=1」と入力します。 データベースにクエリを実行するステートメントは次のようになります。 SELECT admin from where login = `user`=''or '1'=1' or `pass`='xxxx' もちろん、SQL ステートメントでは or は and or を表すため、エラーは発生しません。もちろん、エラーも表示されます。 その時点で、SQL ステートメントの実行後に現在のテーブルのすべての情報をクエリできることがわかりました。例: ログイン侵入用の正しい管理者アカウントとパスワード。 。 方法 1 を修正: JavaScript スクリプトを使用して特殊文字をフィルタリングします (推奨されません。インジケーターでは根本原因は解決されません)。 攻撃者が JavaScript を無効にしても、SQL インジェクション攻撃を実行できる可能性があります。 。 修復方法2: mysql の組み込み関数を使用してフィルタリングします。
2、XSS 攻撃と防止。 フォームを送信: ファイルを受信:
コードは非常に単純で、シミュレートされただけですシーンを使用します。 3. 攻撃者の提出物を追加する 現在のページの Cookie 情報が、返されたページに表示される必要があります。 これを一部の掲示板 (事前にフィルタリングされていない) に適用し、管理者が変更された情報を確認するときに COOKIE 情報を盗み、攻撃者のスペースまたはメールボックスに送信します。 攻撃者は Cookie 修飾子を使用してログイン侵入を実行できます。 以下では、最も一般的に使用されるソリューションの 1 つを紹介します。 解決策 1: JavaScript を使用してエスケープする 解決策 2: PHP 組み込み関数を使用してエスケープする
|