Câu trả lời của Sushant không đúng. Bạn cần để biết về việc chèn NoSQL trong MongoDB.
Ví dụ (lấy từ đây)
User.findOne({
"name" : req.params.name,
"password" : req.params.password
}, callback);
Nếu req.params.password
là { $ne: 1 }
, người dùng sẽ được truy xuất mà không cần biết mật khẩu ($ne
có nghĩa là không bằng 1 ).
Trình điều khiển MongoDB
Bạn có thể sử dụng mongo-sanitize:
Nó sẽ loại bỏ bất kỳ khóa nào bắt đầu bằng '$' trong đầu vào, vì vậy bạn có thể chuyển nó sang MongoDB mà không phải lo lắng về việc ghi đè người dùng độc hại.
var sanitize = require('mongo-sanitize');
var name = sanitize(req.params.name);
var password = sanitize(req.params.password);
User.findOne({
"name" : name,
"password" : password
}, callback);
Trình điều khiển Mongoose
Vì nó tuân theo một lược đồ, nếu mật khẩu là một trường chuỗi, nó sẽ chuyển đổi đối tượng { $ne: 1 }
để xâu chuỗi và không có thiệt hại nào được thực hiện. Trong trường hợp này, bạn không cần phải làm sạch, chỉ cần nhớ đặt một lược đồ thích hợp.