セキュア実装
情報セキュリティマネジメント試験「SQLインジェクション対策」の問題
SQLインジェクションを防ぐ最も確実な実装として、データベース問合せ時に採用すべき方法はどれか。
ア画面表示を暗号化して問合せ結果の盗み見を防ぐための方法を採る。
イ利用者の入力文字列をそのままSQL文へ連結して問合せを組み立て、実行までの処理を高速化するための方法。
ウ値をパラメタとして渡すプレースホルダで問合せを組み立て命令とデータを分離する方法。
エ問合せ結果を一定時間キャッシュしておき、同じ検索を繰り返す際に発生する負荷を軽減するための方法。
正解
ウ.値をパラメタとして渡すプレースホルダで問合せを組み立て命令とデータを分離する方法。
プレースホルダ(バインド機構)は入力値をSQLの命令部分と切り離して安全に埋め込むため、入力に含まれるSQL断片が命令として解釈されず、インジェクションを根本から防げる。
?選択肢ごとの解説
ア ×表示の暗号化は秘匿の話で、入力が命令として実行されるのを防ぐSQLインジェクション対策とは無関係である。
イ ×入力をそのまま連結する方法こそ脆弱性の原因であり、命令とデータが混ざりインジェクションを許してしまう。
ウ ○プレースホルダ(バインド機構)は入力値をSQLの命令部分と切り離して安全に埋め込むため、入力に含まれるSQL断片が命令として解釈されず、インジェクションを根本から防げる。
エ ×結果キャッシュは性能改善で、命令とデータを分離して攻撃を防ぐプレースホルダとは目的が異なる。
セキュア実装の他の問題
この問題の「深掘り・誤答の完全解説・試験のコツ・覚え方」はアプリで。
無料ではじめる →情報セキュリティマネジメント試験の全問を、一問ごとにAIの8-ways解説つきで。SRS暗記カード・全真模試・弱点診断まで。まずは無料で。
ukamiru 過去問 · 情報セキュリティマネジメント試験 · sg-a3-w2-0007
