SQLインジェクション対策について、Webアプリケーションの実装における対策とWebアプリケーションの実装以外の対策の組合せとして、適切なものはどれか。
Webアプリケーションの実装における対策 | Webアプリケーションの実装以外の対策 | |
ア | Webアプリケーション中でシェルを起動しない。 | chroot環境でWebサーバを実行する。 |
イ | セッションIDを複雑なものにする。 | SSLによって通信内容を秘匿する。 |
ウ | バインド機構を利用する。 | データベースのアカウントをもつデータベースアクセス権限を必要最小限にする。 |
エ | パス名やファイル名をパラメータとして受け取らないようにする。 | 重要なファイルを公開領域に置かない。 |
答え ウ
【解説】
SQLインジェクション対策としてWebアプリケーションの実装で有効な方法には、利用者の入力データをSQL文の変数として扱うバインド機構や、利用者の入力データからSQL文での特殊文字を置き換えるエスケープ処理が有効です。
Webアプリケーション以外の対策としては、基本的なことですがデータベースのアクセス権限を必要最小限にして不正なアクセスを防止します。
【キーワード】
・SQLインジェクション