NoSQLインジェクションを防ぐ代表的な対策は、特殊文字のサニタイズとクエリストリングのバリデーションの2つです。
- 特殊文字のサニタイズ
入力値に含まれるクエリに干渉する特殊文字(’ ” \ ; { } など)を無害化し、不正なクエリが実行されることを防ぎます。 - クエリストリングのバリデーション
クエリストリング(クエリとして組み立てられた文字列)を検証し、開発者が意図しない不正なクエリが作成されている場合にエラーを返す実装を行います。
まずサニタイズを確実に実施し、二次的・保険的な対策としてバリデーションを組み合わせるのが効果的です。
詳しい対策内容は、「NoSQLインジェクションの対策」をご覧ください。
