SQLインジェクションについて紹介
今回はデータベースにアクセスする際に使われるコマンドであるSQLを使ってシステムに不正操作するSQLインジェクションについて紹介したいと思います。
SQLインジェクションとは
通常、SQLはデータベースで使用するコマンドとなっています。
プログラム上にコードを入れてデータベースに登録・更新・削除の操作をするのに使います。
Webサイト等で情報を呼び出す際も、Webサイト上で入力された情報をデータベースにアクセスして呼び出して表示させています。
この際に攻撃者が不正なSQL文を入力させて呼び出しを行った時に、入力された情報がSQL文としてデータベースに展開されてコマンドを実行させてしまうことで、個人情報の抜き取りや、データの改ざんを行う行為となります。
対策
攻撃者のSQL文が働いてしまうことで発生するため、
入力項目にSQL文を成立させないように文字数の制限を行うことや、特定の文字を変換するエスケープ処理等が望ましいです。
エスケープ処理は、’(シングルコーテーション)を"(ダブルコーテーション)等にコード変換することで、SQL文の無効化に役立ちます。
また、ネットワーク上の対策としてWAF(Web Application Firewall:ワフ)を導入することで攻撃者の送信した情報に対して、不正なデータとして検出してブロックする効果があります。
これらの機能を合わせて脆弱性の無いシステムを構築し個人情報の漏洩や、データ改ざんを防ぐようにすることが求められます。