SQLインジェクション
SQL Injection
入力値チェックが不十分な入力フォームにSQL片を挿入(Injection)することにより、意図しない出力を行わせるような手法。
例えば、ユーザーIDとパスワードが入力されるような画面において、入力値をそのままSQLに渡しているとすると、
| SELECT * FROM user WHERE userid='$input_userid' AND password='$input_password'; |
の入力値としてパスワードに「'or'A'='A」を入力することにより、
| SELECT * FROM user WHERE userid='USERID' AND password=''or'A'='A'; |
と、表の全件が走査されるようにSQLが偽造されてしまう。
対策としては、入力値チェックをサーバ側で行うこと、また入力された文字の中にRDBMSが利用する特殊文字が含まれているかの確認と、その除去/無害化の処理を行うことが挙げられる。さらにWebアプリケーションファイアウォール(WAF)を併用することでより高いセキュリティを実現することができる。
Security&Trust フォーラム 新着記事
- 複雑化、巧妙化する脅威への対策は? (2012/5/23)
データ保護や標的型攻撃対策、クラウドセキュリティ……「第9回 情報セキュリティEXPO」の会場で見つけた製品を一挙に紹介 - 仮想化がはらむ新たなリスク (2012/5/17)
仮想化に伴って生じるセキュリティやパフォーマンスへの影響を慎重に考慮し、うまく制御していく方法を紹介します - 新入生も新入社員も勉強会に寄っといで! (2012/5/14)
週末ともなれば至るところでセキュリティ系勉強会やCTFなどのイベントがあり、ツイートも盛り上がりました - 防ごうにも防げない? Facebookでの情報漏えい (2012/4/27)
全世界のユーザー数が9億人を突破し、日本でも広がりつつあるFacebook。普及にともないさまざまな「ワナ」も……
|
|
@IT 新着記事
