SQL インジェクション - Server

SQL インジェクションとは

Web アプリケーションの脆弱性を利用し、意図しない SQL を実行してデータベースを不正に操作する攻撃。

injection : インジェクション

注入

攻撃による発生しうる脅威

  • データベースに蓄積された非公開情報の閲覧
  • データベースに蓄積された情報の改ざん、消去
  • 認証回避による不正ログイン
  • ストアドプロシージャ等を利用した OS コマンドの実行

対策方法

  • SQL 文の組み立ては全てプレースホルダで実装する。
  • SQL 文の組み立てを文字列連結により行う場合は、エスケープ処理等を行うデータベースエンジンの API を用いて、SQL 文のリテラルを正しく構成する。
  • ウェブアプリケーションに渡されるパラメータに SQL 文を直接指定しない。
  • エラーメッセージをそのままブラウザに表示しない。
  • データベースアカウントに適切な権限を与える。