ウェブ入力を悪用する攻撃
- SQLインジェクションを見分け、命令と値を分ける
- サニタイジングの対象と、対策の限界を説明する
点線のことばを押すと、意味と使い方を調べられます。
表示・保存
このページの目次 2節・復習と3問
- 1説明を読む
- 2復習する
- 3問題を解く
- 4次へ進む
1入力した値を、命令として実行させない
SQL(関係データベースの定義や操作などを記述する言語)は、データベースからデータを探したり更新したりする言語です。利用者が入力した文字列を命令文へそのまま混ぜると、その一部を不正な命令として解釈させられる場合があります。これがSQLインジェクションです。
例えば商品検索欄に書かれた文字は、検索したい値として扱う必要があります。命令に組み込んで実行させないため、プレースホルダという値を入れる場所を先に決め、後から値を対応付けるバインドなどを使います。命令と値を分けることが要点です。
有害な文字列などを無害化する処理をサニタイジングといいます。ただし、これだけを万能なSQL対策と考えず、入力形式の検証と、用途に応じた安全な処理を組み合わせます。
SQLはStructured Query Languageの略です。複数の記憶装置へデータを分けて書くストライピングは、保存の仕組みであり、入力文字列への対策とは目的も対象も異なります。
利用者入力:値として受け取る/命令の形:プログラムが固定/実行:値を命令にしない
ハルとビットで、使い方を確かめよう
入力欄に文字を書くだけで攻撃になるの?
受け取る側が文字を命令として扱う弱点があると問題になるよ。命令と値を分けよう。
この説明に出てきた略語の正式名称
- SQL
- Structured Query Language
関係データベースの定義や操作などを記述する言語
2対策が扱う対象を、場面から選ぶ
似た選択肢が並んだら、「何を安全に扱いたいのか」を確かめます。用語の響きではなく、対象を合わせましょう。
- 投稿や検索欄の文字を安全に扱いたい:文字列の無害化を指すのがサニタイジングです。SQLでは命令と値の分離を基本に考え、表示先に合った処理も必要です。
- 接続できる機器を絞りたい:MACアドレスによる接続制限は、入力文字列でなく機器に着目します。
- 複数の記憶装置へ分けて書きたい:ストライピングは、保存の方法です。
- 人をだまして情報を得ようとしている:ソーシャルエンジニアリングは、人の心理や行動を狙う手口です。
例えば「掲示板へ入力した文字を処理する」相談に、記憶装置へ分散して保存する方法を答えても、困りごとを解決できません。選択肢を選んだ後に、対象が一致する理由も一言で説明してみましょう。
2表示した文字を実行させない
XSS(Cross-Site Scripting:クロスサイトスクリプティング)は、ウェブページへ不正なスクリプトが混ざり、閲覧者のブラウザで実行される攻撃です。掲示板の投稿など外部入力を表示するときは、出力先の文脈に合ったエスケープなどでデータとして表示します。
ディレクトリトラバーサルは、想定したフォルダの外のファイルにアクセスさせる攻撃です。ファイル名・経路を安全に扱い、許された範囲に限定します。データベース操作か、ブラウザ実行か、ファイル経路かを分けます。
3操作の意思を確かめる
CSRF(Cross-Site Request Forgery:クロスサイトリクエストフォージェリ)は、ログイン中の利用者に意図しない要求を送らせる攻撃です。重要な処理では、正しい画面からの要求か確かめるトークンなどを使います。
クリックジャッキングは透明な画面などを重ね、見えているボタンとは別の操作を押させる攻撃です。画面の埋込みを制限するなど、提供側の対策も必要です。どちらも利用者がクリックした事実だけでは意思を保証できません。
ハルとビットで、使い方を確かめよう
クリックしたのに本人の意思でないことも?
見えない画面や別サイトからの要求があるんだ。操作の経路も確認する仕組みが必要だね。
復習
このパートを振り返ろう
問題で確かめる
実際の問題に挑戦しよう
IPA(独立行政法人 情報処理推進機構)公開過去問1問、入門の確認問題2問で、この範囲の考え方を使います。答えを選んだら、正解の理由とほかの選択肢の違いも確かめましょう。
ヒントを見る
利用者の入力が、データとして扱われずデータベースへの命令の一部になる点に注目します。
オリジナル入門問題 · シラバス 6.5
公開問題・原図の著作権はIPAにあります。表記・表の配置を整えています。解説は当サイト独自のものです。
3問中0問の答えと解説を確認しました。選んだ答えの理由も確かめてから、次へ進みましょう。
出典・参考資料を確認する
学習範囲:IPA シラバス Ver.6.5 ↗ 項目61。身近な例・会話・図解・確認問題は当サイトのオリジナルです。
学習範囲と参考資料
シラバスは学習範囲の根拠です。説明は参考資料を基に当サイトが作成しています。身近な事例・会話・図の数値は学習用の架空例です。2026年9月10日確認。