0

SQLインジェクションを知っていると思いますが、ormインジェクションと呼ばれるnosqlについても同じです。
私は pymongo と mongodb を使用しています。単純な find() と $regexp 演算子を使用した検索のユーザー制御入力があります。
その入力を「サニタイズ」するにはどうすればよいですか?

4

1 に答える 1

1

ORM インジェクションについて話す場合は、リレーショナル データベース システムについて話しますが、実際には MongoDB や NoSQL システム全体ではありません。PyMongo は ORM ツールではないため、ORM インジェクションは行われません。

MongoDB の検索操作では、コレクション内のデータが変更または削除されることはありません。したがって、信頼できない入力に対しては非常に安全です。

hereで説明されているように、発生する可能性がある唯一のことは、不適切なクエリが次のようなことを行うことでシステムの速度を低下させる可能性があることです。

{"$where": "function() { for (var i=0; i<1000000; i++) {}; return true; }"}

これは、ユーザー パラメータを介して転送される関数がないことをコードで確認できることを意味します。

于 2013-02-03T11:47:04.320 に答える