Sushantの答えは正しくありません。 必要 MongoDBでのNoSQLインジェクションに注意してください。
例 (ここから取得)
User.findOne({
"name" : req.params.name,
"password" : req.params.password
}, callback);
req.params.password
の場合 は{ $ne: 1 }
、ユーザーはパスワードを知らなくても取得されます($ne
1に等しくないを意味します 。
MongoDBドライバー
mongo-sanitizeを使用できます:
入力で「$」で始まるキーをすべて削除するため、悪意のあるユーザーによる上書きを心配することなく、MongoDBに渡すことができます。
var sanitize = require('mongo-sanitize');
var name = sanitize(req.params.name);
var password = sanitize(req.params.password);
User.findOne({
"name" : name,
"password" : password
}, callback);
マングースドライバー
スキーマに従うため、パスワード 文字列フィールドである場合、オブジェクトを変換します{ $ne: 1 }
弦に損傷を与えることはありません。この場合、サニタイズする必要はありません。適切なスキーマを設定することを忘れないでください。