情報セキュリティ(35) サイバー攻撃の手口⑧ SQLインジェクション

Web攻撃の一つの方法として、SQLインジェクションがあります。Webサイトのフォームに入力する際に、SQLのステートメントを入力することにより、DB上のデータを書き換えてしまう方法です。

Webシステムは、Web画面とDBから構成されることが一般的です。Web画面に入力された情報をもとに、DB上のデータを更新する場合、単なるユーザ情報ではなくSQLステートメントとして意味のある情報を入力すると、DB上で予期せぬ動作をする場合があります。例えば、あるIDのパスワードを書き換えて、ログインできるようにしてしまう、などの動作です。

これを避けるために、プレースホルダを利用してSQL文を構築するという方法があります。入力された項目情報を、SQL文と組み合わせてSQL文を作成するのではなく、SQL文中に「?」などの変数を置き、入力情報を割り当てるのです。また、SQL文を構成する変数に対して、エスケープ処理を行う方法があります。\を\\と記載するなど、ある文字列を変換して記載するのです。こういうコーディング技法を、セキュアコーディングと言ったりします。

SQLインジェクションは、基本的なサイバー攻撃対策です。このようなサイバー攻撃の方法があるということを認識していれば、ベンダに対してチェックすることで、脆弱性を少しでも低くすることができます。

投稿者プロフィール

小笠原 裕
小笠原 裕中小企業診断士 行政書士
バラの咲く街、八千代市緑が丘で、コンサルティング事務所を運営しています。