情報セキュリティ

基本情報技術者試験A社のWebアプリで、利用者が入力する都道府県コードを検証する処理を実装する。コードは『01』から『47』までの…

情報セキュリティ情報セキュリティ難易度:normal
A社のWebアプリで、利用者が入力する都道府県コードを検証する処理を実装する。コードは『01』から『47』までの定義済みの値だけが正当である。多様な不正入力を確実に排除するための検証方式として、最も適切なものはどれか。
取り得る値の集合を事前に確定させ、その集合に属さない入力をすべて拒む。
過去に攻撃で使われた危険な文字列のパターンを列挙し、該当する入力を拒否する。
入力された文字列の長さが規定のバイト数以内に収まっているかだけを確認する。
入力に含まれる記号文字を無害な文字へ置換してから処理を継続する。
正解
ア.取り得る値の集合を事前に確定させ、その集合に属さない入力をすべて拒む。

正当な値が有限かつ明確に列挙できる場面では、許可する値だけを定義して一致した入力のみ通すホワイトリスト方式が最適である。定義外の入力は理由を問わず一律に弾けるため、未知の攻撃パターンも含めて確実に排除でき、漏れが生じにくい。

?選択肢ごとの解説

ア ○正当な値が有限かつ明確に列挙できる場面では、許可する値だけを定義して一致した入力のみ通すホワイトリスト方式が最適である。定義外の入力は理由を問わず一律に弾けるため、未知の攻撃パターンも含めて確実に排除でき、漏れが生じにくい。
イ ×危険な文字列を列挙して拒否するブラックリスト方式は、列挙漏れや新手の攻撃に対応できず、正当値が明確な本件では過剰かつ不確実である。
ウ ×長さの確認だけでは、規定バイト数内に収まる不正な値(例えば存在しないコード)を通してしまい、正当性の検証にならない。
エ ×記号の置換は無害化の一手だが、置換後も範囲外の値が残り得るため、定義済み値だけを通すべき本件の要件を満たさない。

情報セキュリティの他の問題

この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。

基本情報技術者試験は全4,036問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。

登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。

作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-b-sec-0109

【基本情報技術者試験】A社のWebアプリで、利用者が入力する都道府県コードを検証す…|正解「取り得る値の集合を事前に確定…」|ukamiru 過去問