SQLインジェクションの防御
プレースホルダで値と命令を分離。バインドした入力は命令化しないとは?
意味
SQLインジェクションは入力を文字列連結でSQLに混入させ命令を注入する攻撃である。プレースホルダで値とSQL文を分離すれば、入力が構文に影響しなくなる。 ▍なぜ正解 プレースホルダ(?)を用いた準備済みSQLでは、バインドした入力はSQLの命令ではなく値として扱われる。入力に含めたSQL断片が命令として解釈されないため、SQLインジェクションを防げる。 ▍よくある間違い 暗号化やハッシュ化を注入対策と取り違える、文字列連結を安全と誤解する。 ▍試験の狙い SQLインジェクション対策は「入力を値として扱う(プレースホルダ)」が基本。
?応用情報技術者試験での問われ方
図と擬似コードは、利用者入力を用いてデータベースを検索する際の防御的な実装を示す。この実装が防ぐ攻撃と、その仕組みの説明として最も適切なものはどれか。
答え:プレースホルダで値と命令を分離。バインドした入力は命令化しない
✓覚え方
?に値を入れて、命令にしない。
「プレースホルダで値と命令を分離。バインドした入力は命令化しない」を、演習で定着させる。
無料ではじめる →応用情報技術者試験の過去問を、一問ごとの8-ways解説つきで。まずは無料で。
登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。
ukamiru 用語集 · 応用情報技術者試験
