Có vấn đề cụ thể cho NodeJS, MongoDB (và một số người khác NoSQL cơ sở dữ liệu mà rất nhiều sử dụng javascript): serverside javascript tiêm. Hãy xem here và here (pdf) để biết chi tiết. Nó giống SQL injection hơn XSS.
Một thời gian ngắn, đó là khi kẻ tấn công gửi javascript đến các nút của bạn hoặc mongodb khi bạn đang mong đợi chỉ JSON. Vì vậy, lý thuyết xấu guy có thể mang lại cho dịch vụ của bạn xuống (DOS), truy cập dữ liệu của bạn và thậm chí cả hệ thống tập tin.
Để ngăn chặn các cuộc tấn công như vậy bạn phải:
- Tránh tạo “ad-hoc” JavaScript lệnh bằng cách kết hợp kịch bản với người dùng nhập vào.
- Xác thực thông tin nhập của người dùng được sử dụng trong các lệnh SSJS với cụm từ thông dụng.
- Tránh sử dụng lệnh eval JavaScript. Cụ thể, khi phân tích cú pháp đầu vào JSON, hãy sử dụng giải pháp thay thế an toàn hơn như JSON.parse.
Nguồn
2012-06-10 14:09:07
Tôi tin rằng nguyên tắc "không tin tưởng bất kỳ ai và đặc biệt là đầu vào người dùng" vẫn được áp dụng cho cơ sở dữ liệu noSql. Nhưng đây là một câu hỏi phù hợp và tốt, muốn thấy một số câu trả lời cho nó. Cảm ơn @Jojje –