過去問解きまくり研究所 ホーム

平成24年度 春期 情報セキュリティスペシャリスト試験 午前Ⅱ 問16

アプリケーションセキュリティ

SQLインジェクションの問題

SQL インジェクション対策について,Web アプリケーションの実装における対策と Web アプリケーションの実装以外の対策として,ともに適切なものはどれか。

Web アプリケーションの実装における対策Web アプリケーションの実装以外の対策
アWeb アプリケーション中でシェルを起動しない。chroot 環境で Web サーバを実行する。
イセッション ID を複雑なものにする。SSL によって通信内容を秘匿する。
ウバインド機構を利用する。データベースのアカウントのもつデータベースアクセス権限を必要最小限にする。
エパス名やファイル名をパラメタとして受け取らないようにする。重要なファイルを公開領域に置かない。
答えと解説を見る

✓ これが正解ウ実装における対策:バインド機構を利用する。/実装以外の対策:データベースのアカウントのもつデータベースアクセス権限を必要最小限にする。

解説

バインド機構とデータベース権限の最小化の組が適切です。

SQL インジェクションは、入力値に SQL の一部を紛れ込ませ、アプリケーションが組み立てる SQL 文の意味を書き換えてデータベースを不正に操作する攻撃です。実装での根本的な対策は、バインド機構(プレースホルダ)を使うことです。SQL 文の形を先に確定させ、入力値は後から値としてだけ当てはめるので、入力が SQL 文の構造を変えることはありません。実装以外の対策としては、アプリケーションがデータベースに接続するアカウントの権限を必要最小限にしておきます。万一攻撃が成功しても、できる操作が限られるので被害を小さくできます。どの攻撃に対する対策の組かを見分けることが、この問の軸です。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:平成24年度 春期 情報セキュリティスペシャリスト試験 午前Ⅱ 問16

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)