サポートされているドライバーの1つを使用してください。文字列をJSONとして逆シリアル化して、クエリとして渡さないでください。これをしないでください(Rubyで):
collection.send(query_type, JSON.parse(parameters))
ここで、query_type
およびparameters
フォームからの文字列です。ただし、これを行うには、犯罪的に愚かである必要があります。
クエリ言語自体がないため、同じ注入の余地はありません。 SQLインジェクション攻撃が可能である理由の一部は、実行するアクション(SELECT
、UPDATE
、DELETE
など)はクエリ文字列の一部です。 MongoDBや他の多くの新しいデータベースは、そのようには機能しません。代わりに、アクションはAPIの一部です。 SQLドライバにquery
しかない場合 場合によってはexec
、MongoDBにはfind
があります 、update
、insert
およびremove
。