セキュリティ
SQLインジェクション攻撃への対策として最も有効なものはどれか。
ア.SSLによる通信の暗号化
イ.ファイアウォールによるポートフィルタリング
ウ.プレースホルダを使用したSQL文の組み立て正解
エ.ウイルス対策ソフトの導入
解説
SQLインジェクションは「入力欄に命令文を混ぜ込んでDBを乗っ取る攻撃」。プレースホルダは『データの箱』を先に固定してしまうことで、そもそも命令文として解釈させない構造上の解決策です。
なぜ ウ が正解か
プレースホルダを使うと、SQLの『命令の骨格』を先に確定させてから『データ』を後で安全に埋め込む、という2段階処理になります。つまり入力欄に「' OR '1'='1」と書き込まれても、それは『ただの文字列』としてしか扱われず、命令として実行されません。設計図は改ざんできない、材料だけ差し替える方式――これが根本対策たる所以です。
出典: 基本情報技術者試験 令和5年 サンプル問題