エスキューエルインジェクション

SQLインジェクション

ひとこと解説
想定外のSQL文を実行させてデータベースの内容を不正に読んだり、書き換えたりする攻撃です。

SQLインジェクションは、締め忘れている窓を見つけた泥棒が侵入してカード情報を盗み見たりするようなもの。

Webサイトの設計ミスなどにつけこんで、データベースを盗み見たり改ざんしたりする攻撃です。Webサイトのデータベースというのは情報の宝庫ですから、家の締め忘れた窓のようにちょっとしたミスであれこれやられてしまうと大変な被害が出ます。データベースと言われるとピンとこなくても、自分の家と考えるとゾッとしますよね。

パポ

ちょ!やっておいたはずの宿題が真っ白なんですけど?!改ざんよ改ざん!!

ウルルちゃん

それは何度も聞いた言い訳ね。

意味:SQLインジェクションとは想定していない命令文で不正に情報を引き出す攻撃

ECサイトといったショッピング系Webサイトの管理サーバのデータベースに対して、サイトが想定している命令文とは違ったSQL文を送ることで、不正に顧客の個人情報やクレジットカードといった機密情報を引き出すサイバー攻撃なのがSQLインジェクションです。

Webアプリケーションが不正アクセスというものに気づかず、外部から送信されたSQL文を誤解してしまうことが根本的な原因です。そのため脆弱性としても使われます。ほとんどのWebアプリケーションは、ユーザーが入力した情報をSQLというデータベースを操作する命令文に変換することで動いているため、サイバー攻撃をしている者はこれを利用してあらゆる情報を盗み出します。そのため正しい命令だと勘違いし情報が流出してしまうというわけです。

SQLインジェクションへの対策

WAF

WAF(ウェブ・アプリケーション・ファイアウォール)は、その名の通りWebアプリケーション版のファイアウォール。サイト改ざんや不正アクセスなどSQLインジェクションだけでなく様々な攻撃から守ってくれます。

バインドメカニズム

SQL文章のひな形を準備して、入力情報に基づいてSQL文章を作る機能のこと。不正なSQL文章を直接反映するわけではないので実行を阻止することができます。

テストを実施

実際に検索フォームやログインフォームなどSQLクエリ送信が行われる場所でテストを行い安全性を確認します。