2019年 秋期 情報処理安全確保支援士 午前II 問17

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

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


答え エ


解説
SQLインジェクション対策としてWebアプリケーションの実装で有効な方法には、利用者の入力をもとに生成されるSQL文の部分に“?”や“$1”などの特殊文字を使用したSQL文中のひな形を用意して、その変数部分には実行時に値を割り当てるプレースホルダ処理が有効です。
プレースホルダを使用すると入力されたデータを変数にセットする値として扱え、不正なSQL文とすることができなくなります。
Webアプリケーション以外の対策としては、基本的なことですがデータベースのアクセス権限を必要最小限にして不正なアクセスを防止します。

Webアプリケーションの実装における対策 Webアプリケーションの実装以外の対策
プレースホルダを利用する。 Webアプリケーションプログラムが利用するデータベースのアカウントがもつデータベースアクセス権限を必要最小限にする。


キーワード
・SQLインジェクション

キーワードの解説
  • SQLインジェクション
    Webサイトでユーザーが入力した値をデータベースに問合せを行うような処理があるとき、悪意のあるユーザーが指定する入力値(入力データ)にSQL文を指定することで、データベースへの不正なアクセスを行う攻撃のことです。

もっと、「SQLインジェクション」について調べてみよう。

戻る 一覧へ 次へ