入力の無害化でSQLインジェクションを防ぐ用語を見分ける
ITパスポート試験 令和8年度 問95 / セキュリティ › 情報セキュリティ対策・実装技術
過去問にチャレンジ
SQLインジェクションの対策などで用いられ,処理の誤動作を招かないように,利用者がWebサイトに入力した内容に含まれる有害な文字列を無害な文字列に置き換えることを何と呼ぶか。
- ア
MACアドレスフィルタリング
- イ
サニタイジング
- ウ
ストライピング
- エ
ソーシャルエンジニアリング
会話形式の解説
講師今回はセキュリティ用語の問題です。注目したいキーワードは「SQLインジェクションの対策」「入力内容」「無害な文字列に置き換える」の3つです。
受験者選択肢が全部カタカナ語なので、私には似たように見えてしまいます。どれも何かを防ぐ技術のような気がします。
講師それなら、入力された文字を処理する技術かどうかという視点で分けてみましょう。MACアドレスフィルタリングは、機器ごとに割り当てられたMACアドレスを見て、端末を接続させるかどうかを決める仕組みです。主に無線LANで使われます。
受験者接続できる端末を絞る仕組みなので、入力された文字列とは関係がないのですね。
講師そのとおりです。ストライピングは、データを複数のディスクに分けて書き込む方式で、RAID 0で使われています。読み書きを並行して行えるので、アクセス性能が上がります。
受験者ディスク構成の話なので、これも違いますね。ソーシャルエンジニアリングはセキュリティの用語だったと思うのですが、どうでしょうか。
講師セキュリティの用語ではありますが、人の心理的な隙やうっかりミスにつけ込んで、パスワードなどの秘密情報を手に入れる攻撃の手口です。問題は対策の名前を聞いているので、当てはまりません。
受験者残るのはサニタイジングです。入力に含まれる有害な文字列を無害な形に変える処理、ということでしょうか。
講師はい。特殊文字を置き換えたり、エスケープ、つまり特別な意味を持つ文字をただの文字として扱われる形に変えたりします。入力値がプログラムへの命令として解釈されるのを防ぐので、SQLインジェクションやクロスサイトスクリプティング(XSS)の対策に使われます。
受験者整理すると、接続制限、ディスクの書き込み方式、人をだます手口を除けば、入力の無害化を指すのはサニタイジングだけ、ということですね。
講師よく整理できています。似た用語のバリデーションにも注意しましょう。こちらは入力が文字数や形式などの規則に合っているかを確かめる処理で、無害化とは目的が違います。また、サニタイジングだけではSQLインジェクションを完全には防げないため、SQL文と値を分けて扱うプレースホルダと組み合わせるのが基本です。
まとめ
この問題は、Webサイトへの入力に含まれる有害な文字列を無害な文字列に置き換える処理の名前を問うもので、正解はサニタイジングです。サニタイジングは特殊文字の置換やエスケープによって入力を無害化し、SQLインジェクションやXSSの対策に使われます。MACアドレスフィルタリングは端末の接続制限、ストライピングはRAID 0の分散書き込み、ソーシャルエンジニアリングは人をだます攻撃の手口で、どれも入力の無害化ではありません。似た用語のバリデーションは入力が規則に合っているかを確かめる処理で、目的が異なります。SQLインジェクション対策では、プレースホルダとの組み合わせも重要です。
解答・解説
正解はイです
この問題のテーマ
Webサイトへの入力に含まれる有害な文字列を無害な文字列に置き換える処理の名前を問う、セキュリティ用語の問題です。
解き方の考え方
問題文のキーワードは「SQLインジェクションの対策」「入力内容」「無害な文字列に置き換える」の3つです。入力された文字を処理する技術はどれかという視点で選択肢を見ると、無線LANの接続制限、ディスクへの書き込み方式、人をだます手口が混ざっていることがわかります。この3つを除くと、入力の無害化を指す用語はサニタイジングだけになります。
選択肢ごとの解説
- ×ア MACアドレスフィルタリングMACアドレスフィルタリングは、機器ごとに割り当てられたMACアドレスを見て、端末を接続させるかどうかを決める仕組みです。主に無線LANで、接続できる端末を絞り込むために使われます。入力された文字列を無害にする処理とは関係がありません。
- ○イ サニタイジングサニタイジングは、入力に含まれる有害な文字列を、特殊文字の置換やエスケープによって無害な形に変える処理です。入力値がプログラムへの命令として解釈されるのを防ぐため、SQLインジェクションやクロスサイトスクリプティング(XSS)の対策に使われます。問題文の説明はこの定義と一致します。
- ×ウ ストライピングストライピングは、データを複数のディスクに分けて書き込む方式で、RAID 0で使われています。読み書きを並行して行えるので、アクセス性能が上がります。ディスク構成の技術であり、入力文字列の処理とは関係ありません。
- ×エ ソーシャルエンジニアリングソーシャルエンジニアリングは、人の心理的な隙やうっかりミスにつけ込んで、パスワードなどの秘密情報を手に入れる手口です。情報通信技術を使わない攻撃手法に分類されます。対策の名前ではなく攻撃の名前なので、当てはまりません。
補足
サニタイジングに似た用語にバリデーションがあります。バリデーションは、入力が決められた規則(文字数や形式など)に合っているかを確かめる処理で、無害化とは目的が異なります。また、サニタイジングだけではSQLインジェクションを完全には防げないため、プレースホルダと組み合わせて使うのが基本です。
POINT
- サニタイジングは、入力中の有害な文字列を置換やエスケープによって無害化する処理です。
- サニタイジングは、SQLインジェクションやXSSなど、入力値を悪用する攻撃への対策に使われます。
- SQLインジェクション対策では、プレースホルダを使ってSQL文と値を分けて扱うことも重要です。
- ストライピングはRAID 0の分散書き込み、MACアドレスフィルタリングは端末の接続制限で、どちらも入力処理とは分野が違います。
