SELECT クエリのみを実行する場合、SQL インジェクションについて心配する必要がありますか? 私のサイトにはいくつかの入力フィールドしかなく、情報を検索するだけです。削除、更新などはしません...
4 に答える
実行しようとしているクエリの種類は関係ありません。SQL インジェクションは、クエリを終了し、DELETE、UPDATE、または INSERT などの別のクエリを開始する可能性があります。これがLittle Bobby Tablesのレッスンです
はい、心配する必要があります。PHP 内で実行するクエリや、使用するスクリプトは関係ありません。悪意のあるユーザーは次のようなものを送信でき"; DROP DATABASE
ます。
はい、そうすべきです。SQL インジェクションは、元のクエリの内容とは関係ありません。クエリに任意の句の任意のコマンドを挿入できます。
PHP では、サイト/システム/プロジェクトを保護するのは非常に簡単です。
この手法の例を含むこの公式ドキュメントを見てくださいmysql_real_escape_string
。
' or 1=1 or ''='
更新:ログインページのユーザー名とパスワードの両方のフィールドでこれを使用して、一度使用しました。このようなクエリで結果が得られselect * from user where username = '' or 1=1 or ''='' and password = '' or 1=1 or ''=''
、レコードが返される場合があります。
それがどのように機能するかについては、この例を参照してください。
ユーザーの入力に基づいている場合SELECT
、ユーザーは入力フィールドに何でも入力できるため、心配する必要があります。