SQLインジェクションの防御

プレースホルダで値と命令を分離。バインドした入力は命令化しないとは?

意味

SQLインジェクションは入力を文字列連結でSQLに混入させ命令を注入する攻撃である。プレースホルダで値とSQL文を分離すれば、入力が構文に影響しなくなる。 ▍なぜ正解 プレースホルダ(?)を用いた準備済みSQLでは、バインドした入力はSQLの命令ではなく値として扱われる。入力に含めたSQL断片が命令として解釈されないため、SQLインジェクションを防げる。 ▍よくある間違い 暗号化やハッシュ化を注入対策と取り違える、文字列連結を安全と誤解する。 ▍試験の狙い SQLインジェクション対策は「入力を値として扱う(プレースホルダ)」が基本。

?応用情報技術者試験での問われ方

図と擬似コードは、利用者入力を用いてデータベースを検索する際の防御的な実装を示す。この実装が防ぐ攻撃と、その仕組みの説明として最も適切なものはどれか。
答え:プレースホルダで値と命令を分離。バインドした入力は命令化しない

覚え方

?に値を入れて、命令にしない。

プレースホルダで値と命令を分離。バインドした入力は命令化しない」を、演習で定着させる。

応用情報技術者試験の過去問を、一問ごとの8-ways解説つきで。まずは無料で。

無料ではじめる →
この用語が出る過去問を、解いて確かめる。

用語は暗記カード(SRS)で反復、過去問はAI解説つき。無料ではじめられます。

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

ukamiru 用語集 · 応用情報技術者試験

プレースホルダで値と命令を分離。バインドした入力は命令化しないとは?意味と応用情報技術者試験での問われ方|ukamiru 用語集