平成21年度 秋期 システムアーキテクト試験 午前Ⅱ 問4
テクノロジ/セキュリティSQLインジェクション対策として実施するものはどれか。
出典:平成21年度 秋期 システムアーキテクト試験 午前Ⅱ 問4
- ア入力データを送るときには,GETメソッドではなくPOSTメソッドを使う。
- イ入力データを送る前に,利用者認証を行う。
- ウ入力文字列をエスケープ処理して特殊文字を無効にする。
- エプロトコルにHTTPSを使用してデータを暗号化する。
正解:ウ
解説
SQLインジェクションは、入力データの中にSQL文の一部として解釈される特殊文字を混入させることで、意図しないSQL文を実行させる攻撃である。対策としては、入力文字列中の特殊文字をエスケープ処理し、SQL文の一部として解釈されないようにすることが基本となる。
選択肢ごとの解説
- ア誤り。GETメソッドをPOSTメソッドに変えても、送信されるデータの内容自体は変わらないため、SQLインジェクション対策にはならない。
- イ誤り。利用者認証を行っても、認証後に入力されるデータにSQLインジェクションを狙った特殊文字が含まれていれば防げないため、直接の対策にはならない。
- ウ正しい。入力文字列をエスケープ処理して特殊文字を無効にすることは、SQLインジェクション対策の基本である。
- エ誤り。HTTPSによる暗号化は通信経路上の盗聴・改ざんを防ぐものであり、サーバ側でSQL文が不正に組み立てられることを防ぐものではない。