データベーススペシャリスト試験攻略のツボ(7)
「セキュリティ」に関する問題
西沢直木
2008/11/19
本連載では、テクニカルエンジニア(データベース)試験に対応できる知識を確認していきます。多岐にわたる知識が問われる試験ですので、受験する方はもちろん、日常業務ではあまり使うことのない技術知識の確認にも役立ててください。
|
問7-1 SQLインジェクション対策の知識
SQLインジェクション対策として行う特殊文字の無効化操作はどれか。
ア
クロスサイトスクリプティング
イ
サニタイジング
ウ
パケットフィルタリング
エ
フィッシング
答え
解説
仕事でデータベースを扱っていれば解ける問題です。従って、難易度という点では特筆すべき問題ではありませんが、このようなキーワードも出題されることを紹介するために取り上げました。
SQLインジェクションとはデータベースを介した攻撃手法で、簡単にいえば、正規のSQL文の中に不正なSQL文を「注入(inject)」する手法です。
通常は管理者のみが参照可能な顧客の個人情報を盗み見したり、全データの削除などを意図した攻撃が実行されます。昨今、SQLインジェクションの被害件数が増え続けており、一般のテレビのニュースでも「SQLインジェクション」というキーワードが登場するほどの猛威を振るっています。
SQLインジェクションが実行される場面は主に、Webブラウザを使ってデータベースにアクセスするような、いわゆる「Webアプリケーション」が多く、テキストボックスなどに入力された文字列をそのままSQL文のパラメータとして使ってしまうことによって発生します。
悪意のあるユーザーから渡された不正なSQL文をそのまま使ってしまうことがSQLインジェクションの原因となるので、ユーザーから渡された値を無害化することが対策になります。
その対策は、ユーザーから渡された「汚れた値」を洗浄するという意味で「サニタイズ(サニタイジング)」と表現されることもあります。従って、選択肢「イ」が正解です。
サニタイズによる回避策については、異論もあるところですが、この選択肢から選ぶならば「イ」となるでしょう。
SQLインジェクションの主な発生場所がWebアプリケーションという事情から、発生の仕組みや対策については、PHPやRubyなどWeb系のプログラミング言語の書籍で取り上げられることが多くなっています。SQLインジェクションについて学ぶには、各プログラミング言語の書籍を手に取ってみることをお勧めします。
この問題で注目するもう1つの点は、選択肢に「クロスサイトスクリプティング」が登場したことです。Webアプリケーションのセキュリティでは、SQLインジェクションとクロスサイトスクリプティングは同じような重要度で取り上げられています。将来的に「次のうち、適切なクロスサイトスクリプティングの対策はどれか」のような問題が出題されるのではないかとも推測できます。予習しておきましょう。
1/3 |
「セキュリティ」に関する問題
コラム:「公開鍵暗号」と「共通鍵暗号」の問題で問われる点
データベーススペシャリスト試験攻略のツボ |
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|