SQL injectionに対する脆弱性発見方法について3つ質問をさせていただきます。
質問1
SQL '
と入力した場合に、エラーとなると脆弱性ありと判断されるそうですが、理由は何でしょうか?
質問2
「検索キー」と「検索キー'and'a'='a 」を比較して、「検索キー」のみと同じ結果になれば、脆弱性ありと判断されるそうですが、理由は何でしょうか?
質問3
「検索キー(数値)」と「検索キー and 1=1 」を比較して、「検索キー(数値)」のみと同じ結果になれば、脆弱性ありと判断されるそうですが、理由は何でしょうか?
No.2ベストアンサー
- 回答日時:
質問1については、
例えば名前と完全一致で検索するような場合は以下のようなSQLが実行されると推測されます。
select * from test_table where name='入力された内容'
「入力された内容」の部分にシングルクォートのことを何も考慮せずに「SQL'」を入れれば、
select * from test_table where name='SQL''
となり、エラーになります。
シングルクォートを正しくエスケープしていれば、エラーにはなりません。
他の質問も、where句にそのままいれたらSQLがどうなるかを考えればわかります。
No.1
- 回答日時:
質問1
意味がよくわかりません。
エスケープしていないなどの理由により、複数クエリが実行できてしまうとかそういうことを
言ってますかね??
質問2
シングルクォーテーションがエスケープされていないから。
『and 'a'='a'』がクエリ条件として走行してしまいます。
本来行われるべき検索条件は『検索項目 = '検索キー\'and\'a\'=\'a'』であって、結果は0件ですよね。
質問3
数値項目であるにも関わらず文字列が設定され、更にシングルクォーテーションで囲まれていないから。
『and 1=1』がクエリ条件として走行してしまいます。
いずれにしても、すべてプレースホルダーを利用したクエリの実行を心掛ければ解決すると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Vlookup関数で#N/Aエラー表示について 3 2022/09/03 20:59
- Excel(エクセル) セルの値をグーグルで検索するエクセルVBAについて! 2 2022/08/01 21:41
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Excel(エクセル) 表の中を『年』で検索し、値を得たい。 4 2023/01/31 22:37
- ノートパソコン chromebookのcaps lockが外れなくなった 5 2022/07/14 19:23
- Excel(エクセル) Excel同士のデータの突合 3 2023/08/07 16:34
- X(旧Twitter) Twitter検索から除外 1 2023/08/18 11:00
- その他(IT・Webサービス) Google日本語入力の操作方法 一度確定した後の訂正方法 1 2023/06/17 16:03
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オラクルではできるのにSQLSERV...
-
sqlserverで集計結果をUPDATEし...
-
アクセス 日付抽出(年月のみ)...
-
ACCESSのSQLで、NULLかNULLでな...
-
MAX値を条件にデータを取得する...
-
AccessのSQLで、FROM句の構文エ...
-
sqlserverで対象のレコードを削...
-
「マスタ」と「テーブル」の違...
-
データの二重表示の原因
-
SELECT時の行ロックの必要性に...
-
[ BETWEEN ] vs [ >= AND <= ]
-
ACCESS 一番最新の日付の金額...
-
クエリのキャンセルがいつにな...
-
accessのロック
-
SELECT FOR UPDATE にトランザ...
-
accessのエクスポートエラーに...
-
DataTableから条件を満たした行...
-
ACCESSでのエクセルインポート...
-
ビューで引数を使いたい
-
Accessでの排他制御
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのSQLで、NULLかNULLでな...
-
sqlserverで集計結果をUPDATEし...
-
オラクルではできるのにSQLSERV...
-
アクセス 日付抽出(年月のみ)...
-
違いを教えてください
-
更新クエリでキー違反
-
MAX値を条件にデータを取得する...
-
AccessのSQLで、FROM句の構文エ...
-
プライマリーキーで同じ値をUPD...
-
シャープレジスター エラーコード
-
sqlplusでバックスペースが効か...
-
ACCESSで複数テーブルを結合し...
-
F1キーを押すの 英訳
-
sqlserverで同一キー単位で金額...
-
sqlserverで対象のレコードを削...
-
アクセスで複数テーブルの選択
-
Access 2010動きが遅い
-
AccessテーブルでのF6キーにつ...
-
DB構成<キーの考え方>
-
accessでのリンクテーブルの更新
おすすめ情報