SQLインジェクションセキュリティ用語事典

SQL Injection

» 2004年01月01日 10時00分 公開
[@IT]

 入力値チェックが不十分な入力フォームに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)を併用することでより高いセキュリティを実現することができる。

関連用語

クロスサイトスクリプティング
Webアプリケーションファイアウォール

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。