本文へ移動
合格ノート.
基本情報技術者試験
基本情報技術者試験用語一覧を見る
テクノロジ

SQLインジェクションとは

英語名:SQL Injection

ひとことで言うと:Web入力などへ不正なSQL断片を混入させ、意図しないDB操作を実行させる攻撃。

意味をわかりやすく解説

SQL文を文字列連結で組み立て、利用者入力をそのまま埋め込むと、入力値がSQL構文として解釈される可能性があります。認証回避、情報漏えい、改ざんなどにつながります。

代表的な対策は、プレースホルダを使ったパラメータ化クエリやプリペアドステートメントです。単なる入力文字の置換だけに頼らず、入力値とSQL構文を分離します。

具体例

SELECT * FROM users WHERE id=' + 入力値 + ' のような文字列連結では、不正入力によってWHERE条件を書き換えられる危険があります。

似た用語との違い

XSS

SQLインジェクションはデータベースへのSQLを操作し、XSSは閲覧者のブラウザでスクリプトを実行させます。

基本情報技術者試験の試験ポイント

最重要対策はパラメータ化です。XSS対策のHTMLエスケープとは目的が違います。

CHECK QUESTION

SQLインジェクション対策として最も基本的なのは、利用者入力をSQL文へ文字列連結することですか、それともプレースホルダで値として渡すことですか。

答えを見る

プレースホルダで値として渡すことです。

この説明は分かりやすかったですか?

基本情報技術者試験を勉強中ですか?

この用語を含む重要用語を、単語帳や4択テストで学習できます。