TOPシステムトレンド> Webアプリケーションに渡されるパラメータにSQL文を直接指定しない
安全なウェブサイト
安全なWebサイトの作成ガイド

第1回:Webアプリケーション開発者が知っておくべきセキュリティ
著者:独立行政法人 情報処理推進機構セキュリティセンター
2006/2/9
前のページ  1  2  3
Webアプリケーションに渡されるパラメータにSQL文を直接指定しない

   これは、いわば「論外」の実装ですが、フォームのhidden形式などにSQL文をそのまま指定するといった問題のあるWebサイトが少なからず存在するため、避けるべき実装として紹介します。

   Webアプリケーションに渡されるパラメータにSQL文を直接指定していると、そのパラメータの改変により、データベースの不正利用につながる可能性があります。
参考URL
セキュアWebプログラミング「hiddenは危険」
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_05.html


保険的対策

   次に保険的対策について解説します。保険的対策として表3にあげた2つがあります。

  • データベースアカウントに適切な権限を与える
  • エラーメッセージをそのままブラウザに表示しない

表4:SQLインジェクションの保険的対策

   それではそれぞれについて解説していきます。


データベースアカウントに適切な権限を与える

   これは、SQLインジェクション攻撃による影響を低減するための対策です。Webアプリケーションがデータベースに接続する際に使用するアカウントの権限が必要以上に高い場合、攻撃による被害が深刻化する恐れがあります。

   Webアプリケーションからデータベースに渡す命令文を洗い出し、その命令文の実行に必要な最小限の権限をデータベースアカウントに与えてください。

参考URL
セキュアDBプログラミング「データベースとアクセス権」
http://www.ipa.go.jp/security/awareness/vendor/programming/a02_03.html


エラーメッセージをそのままブラウザに表示しない

   これは、利用者に必要以上の情報を与えないための対策です。エラーメッセージの内容に、データベースの種類やエラーの原因、実行エラーを起こしたSQL文などの情報が含まれる場合、これらはSQLインジェクションの攻撃につながる有用な情報となりえます。

   データベースに関連するエラーメッセージは、利用者のブラウザ上に表示させないことをお勧めします。以上の内容を実装することにより、SQLインジェクションに対する安全性の向上が期待できます。データベースと連携したWebアプリケーションの構築については、次の資料もご参照ください。

参考URL
セキュアデータベースプログラミング
http://www.ipa.go.jp/security/awareness/vendor/programming/a02.html

前のページ  1  2  3

安全なウェブサイトの作り方 - ウェブアプリケーションのセキュリティ実装とウェブサイトの安全性向上のための取り組み

2006年1月31日にIPAは、ウェブサイト運営者がウェブサイト上で発生しうる問題に対して、適切な対策ができるようにするため、「安全なウェブサイトの作り方」を取りまとめ公開いたしました。

本記事は、その報告書の転載です。詳しい内容に関しましては、以下のURLをご参照ください。

安全なウェブサイトの作り方
http://www.ipa.go.jp/security/vuln/documents/2005/website_security.pdf

脆弱性関連情報に関する届出について
http://www.ipa.go.jp/security/vuln/report/index.html

IPA(独立行政法人情報処理推進機構)
http://www.ipa.go.jp/index.html

IPA/ISEC(独立行政法人情報処理推進機構セキュリティセンター)
http://www.ipa.go.jp/security/index.html

独立行政法人情報処理推進機構セキュリティセンター
著者プロフィール
独立行政法人 情報処理推進機構セキュリティセンター
情報処理推進機構セキュリティセンター(IPA/ISEC)は、わが国において情報セキュリティ対策の必要性・重要性についての認識を啓発・向上し、具体的な対策実践情報・対策手段を提供するとともに、セキュアな情報インフラストラクチャ整備に貢献することをミッションとしています。


INDEX
第1回:Webアプリケーション開発者が知っておくべきセキュリティ
  はじめに
  Webアプリケーションのセキュリティ実装
Webアプリケーションに渡されるパラメータにSQL文を直接指定しない