データベーススペシャリスト試験攻略のツボ(7)

「セキュリティ」に関する問題


西沢直木
2008/11/19

 本連載では、テクニカルエンジニア(データベース)試験に対応できる知識を確認していきます。多岐にわたる知識が問われる試験ですので、受験する方はもちろん、日常業務ではあまり使うことのない技術知識の確認にも役立ててください。
目次
今回の出題範囲
20年-午前問題-問45/19年-午前問題-問48/18年-午前問題-問46








問7-1 SQLインジェクション対策の知識

 SQLインジェクション対策として行う特殊文字の無効化操作はどれか。

ア 
クロスサイトスクリプティング

イ 
サニタイジング

ウ 
パケットフィルタリング

エ 
フィッシング

(20年-午前問題-問45)

答え

解説

 仕事でデータベースを扱っていれば解ける問題です。従って、難易度という点では特筆すべき問題ではありませんが、このようなキーワードも出題されることを紹介するために取り上げました。

 SQLインジェクションとはデータベースを介した攻撃手法で、簡単にいえば、正規のSQL文の中に不正なSQL文を「注入(inject)」する手法です。

 通常は管理者のみが参照可能な顧客の個人情報を盗み見したり、全データの削除などを意図した攻撃が実行されます。昨今、SQLインジェクションの被害件数が増え続けており、一般のテレビのニュースでも「SQLインジェクション」というキーワードが登場するほどの猛威を振るっています。

 SQLインジェクションが実行される場面は主に、Webブラウザを使ってデータベースにアクセスするような、いわゆる「Webアプリケーション」が多く、テキストボックスなどに入力された文字列をそのままSQL文のパラメータとして使ってしまうことによって発生します。

 悪意のあるユーザーから渡された不正なSQL文をそのまま使ってしまうことがSQLインジェクションの原因となるので、ユーザーから渡された値を無害化することが対策になります。

 その対策は、ユーザーから渡された「汚れた値」を洗浄するという意味で「サニタイズ(サニタイジング)」と表現されることもあります。従って、選択肢「イ」が正解です。

 サニタイズによる回避策については、異論もあるところですが、この選択肢から選ぶならば「イ」となるでしょう。

 SQLインジェクションの主な発生場所がWebアプリケーションという事情から、発生の仕組みや対策については、PHPやRubyなどWeb系のプログラミング言語の書籍で取り上げられることが多くなっています。SQLインジェクションについて学ぶには、各プログラミング言語の書籍を手に取ってみることをお勧めします。

 この問題で注目するもう1つの点は、選択肢に「クロスサイトスクリプティング」が登場したことです。Webアプリケーションのセキュリティでは、SQLインジェクションとクロスサイトスクリプティングは同じような重要度で取り上げられています。将来的に「次のうち、適切なクロスサイトスクリプティングの対策はどれか」のような問題が出題されるのではないかとも推測できます。予習しておきましょう。

  1/3 次のページへ

Index
データベーススペシャリスト試験攻略のツボ(7)
「セキュリティ」に関する問題
問7-1 SQLインジェクション対策の知識
問7-2 Webビーコンは何をしているか
問7-3 公開鍵暗号方式とは
  コラム:「公開鍵暗号」と「共通鍵暗号」の問題で問われる点

データベーススペシャリスト試験攻略のツボ


Database Expert フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Database Expert 記事ランキング

本日月間