セキュア実装

情報セキュリティマネジメント試験SQLインジェクションを防ぐ最も確実な実装として、データベース問合せ時に採用すべき方法はどれか

情報セキュリティ対策・実装技術セキュア実装難易度:normal
SQLインジェクションを防ぐ最も確実な実装として、データベース問合せ時に採用すべき方法はどれか。
画面表示を暗号化して問合せ結果の盗み見を防ぐための方法を採る。
利用者の入力文字列をそのままSQL文へ連結して問合せを組み立て、実行までの処理を高速化するための方法。
値をパラメタとして渡すプレースホルダで問合せを組み立て命令とデータを分離する方法。
問合せ結果を一定時間キャッシュしておき、同じ検索を繰り返す際に発生する負荷を軽減するための方法。
正解
ウ.値をパラメタとして渡すプレースホルダで問合せを組み立て命令とデータを分離する方法。

プレースホルダ(バインド機構)は入力値をSQLの命令部分と切り離して安全に埋め込むため、入力に含まれるSQL断片が命令として解釈されず、インジェクションを根本から防げる。

?選択肢ごとの解説

ア ×表示の暗号化は秘匿の話で、入力が命令として実行されるのを防ぐSQLインジェクション対策とは無関係である。
イ ×入力をそのまま連結する方法こそ脆弱性の原因であり、命令とデータが混ざりインジェクションを許してしまう。
ウ ○プレースホルダ(バインド機構)は入力値をSQLの命令部分と切り離して安全に埋め込むため、入力に含まれるSQL断片が命令として解釈されず、インジェクションを根本から防げる。
エ ×結果キャッシュは性能改善で、命令とデータを分離して攻撃を防ぐプレースホルダとは目的が異なる。
この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。

情報セキュリティマネジメント試験は全3,036問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。

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

作成・校閲:ukamiru編集部 · 情報セキュリティマネジメント試験 過去問 · sg-a3-w2-0007

【情報セキュリティマネジメント試験】SQLインジェクションを防ぐ最も確実な実装として、データベー…|正解「値をパラメタとして渡すプレー…」|ukamiru 過去問