メインコンテンツへスキップ

トップページ > インターネットの基礎 > インターネット用語1分解説


現在、マイクロソフト セキュリティ情報 MS10-090のパッチを適用したInternet Explorer 8をお使いの方は、 JPNIC Webサイトの内容が印刷できない状態になっています。 印刷をする場合には、 Internet Explorer 8以外のブラウザを利用してください。
この不具合の詳細と、その対処方法については、 マイクロソフトのWebサイトに掲載されている以下の技術情報をご覧いただくか、 マイクロソフトのサポートセンターにお問い合わせください。
 マイクロソフトの技術情報

SQLインジェクションとは

SQLインジェクションとは、 操作にSQLと呼ばれる言語を用いるタイプのデータベースを使用するアプリケーションに対し、 その入力に本来入力としては使われることが想定されていないSQL文を挿入すること(injection - インジェクション)で、 データベースに不正な操作を加える攻撃方法のことです。

SQLインジェクションに対する脆弱性は、 ユーザーの入力をデータベースへの問い合わせの一部として使用するアプリケーションにおいて、 入力された値のチェックやSQL文のメタ文字(特殊な意味を持つ文字)のエスケープ(メタ文字として処理されないよう適切な文字列に置換すること)を行っていなかったり、 それらが不十分であったりする場合等に発生します。 このような場合、 データベースに問い合わせる命令文の中に不適切な文字列が含まれるような入力を与えると、 データベースを利用しているプログラムに不正な動作をさせることが可能となってしまいます。

近年のWebサイトは、 データベースと連携して動的にページを生成するものが非常に多くなっており、 SQLインジェクションはWebサイトへの攻撃方法として、 代表的なものの一つになっています。 SQLインジェクションによる被害の実例としては、 Webサイトの改ざんや顧客情報の漏えい等が多数報告されており、 適切な対策が施されていない場合、 攻撃を受けた際の影響は深刻なものになる可能性があります。

SQLインジェクションの対策としては、 プリペアドステートメントという仕組みを利用するのが比較的容易で確実です。 プリペアドステートメントでは、 パラメータとして与えられた部分に適切なエスケープ処理が自動で行われるため、 SQLインジェクションによる、 本来意図していないSQL文の実行を防ぐことができます。 また、万一攻撃を受けた際の被害を抑えるために、 アプリケーションに与えるデータベースの操作権限は、 必要最小限のものにしておくことが望ましいと言えます。

参考:
"安全なSQLの呼び出し方"
http://www.ipa.go.jp/security/vuln/documents/website_security_sql.pdf

JPNIC News & Views vol.803(2010年12月15日発行)より



このページを評価してください
このWebページは役に立ちましたか?
役に立った。
役に立たなかった。
どちらとも言えない。

ページの改良点等がございましたら自由にご記入ください。
  • このフォームをご利用した場合、ご連絡先の記入がないと、 回答を差し上げられません。 回答が必要な場合は、 お問い合わせ先 をご利用ください。
  • 文中でのHTMLタグ使用はご遠慮ください。
ページトップへ