独立行政法人 情報処理推進機構 (IPA) セキュリティセンターからあるサイトの
SQLインジェクションの対策はしてますか?と問い合わせがありました。
確認してみると確かにデータベースに不正アクセスできました。。
昔のソースを引っ張り出して対応したので、メモを残しておきます。
【開発環境はPHP+Postgres】
- 特殊文字をエスケープ
・pg_escape_string()を使って文字列をエスケープする - データの型を保証
・値を目的の型にキャストしたり、型チェックを行うことでデータの型を保障する
