SQLインジェクション |
スポンサードリンク
SQLインジェクションについて例を用いて解説します。
ユーザIDとパスワードの入力欄を設けてあって入力データなどのチェックに不備があるサイトの動作について見てみます。
正常な入力データの場合
id :test
password :test123 |
→ |
select * from test_table where id='test' and password="tset123"; |
不正な入力データの場合
id: test
password: ' OR '1'='1' |
→ |
select * from test_table where id='test' and password='' OR '1'='1'; |
不正な入力データの場合は、OR条件で'1'='1'があるためpasswordなしでtest_tableのすべてのレコードが参照出来ます。このようにWEBアプリケーションが「'」、「;」、「%」、「+」などSQL文として意味を持つ文字をそのまま実行してしまう場合には、悪意のあるユーザによって簡単に不正なSQL文が生成されてしまいます。
攻撃対象にならないためにも、バインド機構の使用やサニタイジングを実施する必要があります。
※WEBアプリケーション攻撃とはでもSQLインジェクションについて紹介しています。
|
スポンサードリンク
|
|
|