SQLインジェクション

サイバー攻撃手法のひとつであるSQLインジェクションについて紹介します。

SQLインジェクションとは

SQLインジェクションは、データベースを利用しているWebサイトで、SQLに影響を及ぼす入力を行うことでプログラムの誤動作や不正にデータを取得するなどの攻撃のひとつです。

  
SELECT * FROM 顧客 WHERE 名前 = :名前
  

:名前は入力値

本来であれば、いかのように:名前に太郎などの文字列を入力する。

  
SELECT * FROM 顧客 WHERE 名前 = '山田'
  

以下のようにデータの取得が可能である

  
SELECT * FROM 顧客 WHERE 名前 = '' OR 'name' = 'name' 
  

この場合は、'name'='name'の結果が真(true)になるため、顧客テーブルの全データを取得できます。

対処方法

対処方法は、入力の内容を文字列として扱うことで、SQL文の検索条件の条件値として対応します。

'' OR 'name' = 'name' はあくまでも文字列として扱います。

まとめ

サイバー攻撃手法のひとつであるSQLインジェクションについて紹介しました。

コメント