Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save taroyanaka/046ebfeb3ef9e47bc403b25220f571bd to your computer and use it in GitHub Desktop.
Save taroyanaka/046ebfeb3ef9e47bc403b25220f571bd to your computer and use it in GitHub Desktop.

taroyanaka: better-sqlite3のプレースホルダーの使える場合と使えない場合

GitHub Copilot: better-sqlite3のプレースホルダーは、SQL文の中で値を動的に指定する場合に使用します。プレースホルダーを使用することで、SQLインジェクション攻撃からアプリケーションを保護することができます。

プレースホルダーは、以下のような場合に使用できます。

  • SELECT文のWHERE句で、検索条件を動的に指定する場合
  • INSERT文で、挿入する値を動的に指定する場合
  • UPDATE文で、更新する値を動的に指定する場合
  • DELETE文で、削除する行を動的に指定する場合

一方、以下のような場合にはプレースホルダーを使用できません。

  • SELECT文のORDER BY句で、カラム名を動的に指定する場合
  • SELECT文のLIMIT句で、取得する行数を動的に指定する場合
  • SELECT文のOFFSET句で、取得する行のオフセットを動的に指定する場合

これらの場合には、SQL文を動的に生成する必要があります。ただし、SQL文を動的に生成する場合は、SQLインジェクション攻撃に対して脆弱になるため、入力値の検証やサニタイズを行うことが重要です。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment