MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Vệ sinh thông tin nhập của người dùng trong Mongoose

Có vẻ như mongo-sanitize mô-đun npm là nơi bắt đầu cho chức năng thoát thô. Thành thật mà nói, điều này có vẻ phù hợp hơn ở lớp phần mềm trung gian kết nối / thể hiện bởi vì ở lớp mongoose, theo thiết kế, mã không đặt ra bất kỳ kỳ vọng nào về các tham số truy vấn / cập nhật về việc liệu chúng có được viết bởi nhà phát triển ứng dụng hay không (trong trường hợp đó, chúng không được khử trùng hoặc chúng sẽ không hoạt động chính xác) hoặc liên quan đến đầu vào của người dùng (phải được làm sạch). Vì vậy, tôi khuyên bạn nên sử dụng các chức năng phần mềm trung gian để làm sạch những nơi phổ biến nhất cho đầu vào của người dùng để nhập:req.body , req.queryreq.params . Vì vậy, ví dụ, bạn có thể làm một cái gì đó như (phác thảo):

var json = require("body-parser").json;
var sanitize = require("mongo-sanitize");

function cleanBody(req, res, next) {
  req.body = sanitize(req.body);
  next();
}

function updateUser(req, res) {
  //...
  // safe to build an update query involving req.body here
}
app.put("/api/users", json(), cleanBody, updateUser);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Meteor - Tại sao tôi nên sử dụng this.userId thay vì Meteor.userId () bất cứ khi nào có thể?

  2. Làm cách nào để gửi đối tượng từ MongoDB sang ngọc?

  3. Định cấu hình và sử dụng máy chủ mockup mongodb để kiểm tra đơn vị

  4. Node.js Mongoose. Cập nhật với ArrayFilters

  5. Chức năng Azure với tích hợp Cosmos MongoDB không lưu