プレースホルダ(プリペアドステートメント)とは?ぷれーすほるだ
プレースホルダ(プリペアドステートメント)とは、SQL文の構文を先にデータベースへ渡して解析させ、値は後から別枠で与える仕組み。値がSQLの構文として解釈される機会がそもそも無くなるため、文字列連結や個別のエスケープに頼るより確実にSQLインジェクションを防げる。静的プレースホルダと動的プレースホルダの区別がある。
最終更新:2026-10-06
この語が出る過去問を解く →具体例
検索条件の会員IDをWHERE id = ?として束縛し、実行時に値だけを渡す。DBサーバ側で構文木が確定してから値が入るため、値に引用符やOR 1=1が含まれてもただの文字列として扱われ、条件式が書き換わらない。
試験での引っ掛け
テーブル名・列名・ORDER BYの並び順・LIKEのワイルドカードは値ではないため束縛できず、ここは許可リストで固定するしかない。またドライバがクライアント側で文字列を組み立てる動的プレースホルダは、文字コードの扱い次第で回避の余地が残る。
関連用語
出た過去問
出典:令和5年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問17(IPA)解説で登場
SQLインジェクション対策について,Webアプリケーションプログラムの実装における対策と,Webアプリケーションプログラムの実装以外の対策の組みとして,適切なも…
正解:プレースホルダを利用する。/Webアプリケーションプログラムが利用するデータベースのアカウントがもつデータベースアクセス権限を必要最小限にする。
要点:SQLインジェクションはプレースホルダとDB権限の最小化で守る
SQLインジェクションの実装上の根本対策はプレースホルダ(プリペアドステートメント)によるバインド機構の利用であり、これで値がSQL構文として解釈されなくなる。実装以外の対策としては、アプリケーションが使うDBアカウントの権限を最小限に絞り、万一侵入されたときの被害を限定する方法が有効である。したがってエの組みが適切。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。