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

令和元年度 秋期 午前Ⅱ 問17

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

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

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

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

✓ これが正解エプレースホルダを利用する。 / Web アプリケーションプログラムが利用するデータベースのアカウントがもつデータベースアクセス権限を必要最小限にする。

解説

プレースホルダの利用とDB権限の最小化がともに適切な対策です。

SQL インジェクションは、入力値に SQL の一部を紛れ込ませて、データベースに意図しない命令を実行させる攻撃です。実装での根本的な対策は、プレースホルダを利用して SQL の構造を先に固定し、入力値を値としてだけ扱わせることです。実装以外の対策としては、Web アプリケーションプログラムが使うデータベースのアカウントの権限を必要最小限にしておくことが挙げられます。仮に攻撃が成立しても、できる操作が限られるので被害を小さくできます。表の各行は、それぞれ別の脆弱性に対する対策の組になっています。見分ける軸は、行ごとに何の攻撃への対策かを名付けることです。

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

この問題の用語

出典:令和元年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問17

同じ用語が出る問題

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