こんにちは!
今回はRubyでSQLのプレースホルダを使う方法をまとめます。
プレースホルダとは
- プレースホルダとは、SQLのクエリにプログラムから値を渡すための場所を確保すること
- SQLインジェクションという、本来値を入れることを想定した場所に悪意のあるクエリを仕込むことを防止するための仕組み
- プレースホルダを使うことで、外部からの入力は値として扱い、悪意のあるクエリを動作させないようにする
コード
@db.execute(" SELECT * FROM test WHERE test_column = ? ", test_value)
- 上記コードはWHEREで検索する値を指定する箇所にプレースホルダを使用し、test_valueを代入している
#{test_value}
のように変数展開を用いると、SQLインジェクションの危険があるため、プレースホルダを活用すべき
おわりに
今回はプレースホルダについてまとめました。他にも、複数のプレースホルダや、可変配列を渡すプレースホルダなどもあるので、またまとめたいと思います。
21/100