検索機能などで入力されたキーワードを無害化するためにbindを使用することを学びました。
以前にも作業中にbindに遭遇したことがあったもののどのような目的で使用しているのかいまいち理解できていなかったため、今回はbind(バインド)について簡単にまとめたいと思います。
使用する目的
SQLインジェクション攻撃を回避するために使用します。
※SQLインジェクション攻撃とは
キーワードに
' OR 'A'='A
などSQL的なものを入力し、パスワードを入力しなくても不正にログインできる状態にする行為等をいいます。インジェクション攻撃のパターンについてはこちらのサイトで詳しいまとめを読むことが出来ます。
対応
無害化したいキーワードを#bindで囲ってあげます。
SELECT 項目名 FROM テーブル名 WHERE 検索条件 AND #bind($キーワード);