【線路主任技術者】過去問準拠 予想演習 問057 解説|思考ルート
Webアプリケーションのセキュリティ対策に関する次の記述のうち、最も不適切なものはどれか。
※本問は、過去の出題傾向・頻出論点をAI分析して作成した「過去問準拠の予想演習問題」です。
予想演習 No.057
Webアプリケーションのセキュリティ対策に関する次の記述のうち、最も不適切なものはどれか。
選択肢
ディレクトリトラバーサル脆弱性を突いた攻撃を防ぐためには、ユーザが入力したファイル名やパス文字列をそのままオープン系APIに渡すことを禁止し、サーバー側で許可されたファイル名リスト(ホワイトリスト)との照合やパスの正規化による厳格な検証を行うことが効果的である。
クロスサイトスクリプティング(XSS)脆弱性に対する恒久的な防御策として、データベースへのデータ登録時にすべての入力値に対してプレースホルダによるバインド処理を適用すれば、Webブラウザ上での不正なJavaScriptの実行を完全に阻止することができる。
SQLインジェクション攻撃を防止するためには、動的なSQL文の組み立てを行わずに、プレースホルダを用いたプリペアドステートメントを活用して、入力データをSQL文の構造から完全に切り離して処理することが原則である。
Webアプリケーションの設計および実装段階においては、不特定の外部からの入力値に対して一律の信頼を置かず、想定外の文字や制御コードが含まれていないかを検証する入力値検証(バリデーション)を徹底することが重要である。
正解と解説(思考ルート)
【正解】 選択肢 2
■【設問の意図と背景】
Webアプリケーションの脆弱性に対する防御手法の基本原則を理解させるとともに、適用対象の異なる技術(プレースホルダ)の誤用に関する例外的なひっかけを見抜く力を問う。
■【正解の根拠とメカニズム】
選択肢2の記述において、プレースホルダはデータベースへのクエリ実行時のSQLインジェクション対策であり、Webブラウザ上でのXSSを防ぐものではない。XSS対策には出力時のエスケープ処理が必要不可欠であり、データベース登録時のプレースホルダだけではXSSを完全に阻止することはできないため、これが最も不適切である。
■【各選択肢の徹底検証】
・選択肢1:ディレクトリトラバーサル対策としてホワイトリスト検証やパスの正規化を行うのは正しい。
・選択肢2:プレースホルダはSQLインジェクション対策であり、XSS対策(エスケープ処理)と混同しているため不適切(これが正解)。
・選択肢3:SQLインジェクション対策としてプレースホルダやプリペアドステートメントを使用するのは正しい。
・選択肢4:入力値検証(バリデーション)の徹底はセキュアコーディングの基本原則として正しい。
■【本番での即断ポイント】
プレースホルダが「データベース」向けの対策であることを知っていれば、「ブラウザ上での不正スクリプト実行(XSS)の阻止」という記述を見た瞬間に誤りであると即断できる。
スマホで全100問をランダム演習・弱点管理しませんか?
「思考ルート」のWeb演習アプリなら、線路主任技術者をはじめとする難関資格の過去問準拠・予想演習を、スマホやPCで100問まで完全無料でお試し演習できます。