Trả lời
Sử dụng một trong các trình điều khiển được hỗ trợ. Không deserialize chuỗi như JSON và vượt qua chúng như các truy vấn, ví dụ: không' làm điều này (trong Ruby):
collection.send(query_type, JSON.parse(parameters))
nơi query_type
và parameters
là chuỗi đến từ một biểu mẫu. Bạn sẽ phải là tội phạm ngu ngốc để làm điều này mặc dù.
Vì không có ngôn ngữ truy vấn nên không có cùng một phòng để tiêm. Một phần lý do mà các cuộc tấn công SQL injection có thể là hành động cần thực hiện (SELECT
, UPDATE
, DELETE
, v.v.) là một phần của chuỗi truy vấn. MongoDB và nhiều cơ sở dữ liệu mới hơn, không hoạt động như vậy, thay vào đó hành động là một phần của API. Khi trình điều khiển SQL chỉ có query
và trong một số trường hợp là exec
, MongoDB có find
, update
, insert
và remove
.
Hầu hết các trình điều khiển được thiết lập nơi bạn xây dựng truy vấn dưới dạng ngôn ngữ trình bày tài liệu BSON. Bạn định sử dụng ngôn ngữ mongo nào?
Bạn có thể xây dựng các truy vấn MongoDB bằng Javascript trong mệnh đề where và tại đây việc tiêm có thể xảy ra. Ở đây giải thích cách ngăn chặn điều này: http://www.mongodb.org/display/DOCS/Do+I+Have+to+Worry+About+SQL+Injection
có, bằng cách sử dụng tìm kiếm regex. Ví dụ: giả sử bạn kiểm tra bằng tên người dùng và bạn không sử dụng EQ op. Nếu tôi vượt qua [a-z], ví dụ tôi sẽ bỏ qua hành động đăng nhập của bạn :).
Nhưng dù sao, nó phụ thuộc rất nhiều vào logic về cách thức mọi thứ được thực hiện trong giải pháp.
- 1. Tiêm HttpServletRequest
- 2. Tiêm phiên?
- 3. Bảo mật Mongodb trong node.js
- 4. Django + MongoDB vs Node.js + MongoDB
- 5. Tiêm giá trị vào sự phụ thuộc tiêm
- 6. Sử dụng tính năng tiêm thay vì tiêm xây dựng
- 7. Ngăn chặn tiêm LDAP
- 8. tiêm tên Guice singleton
- 9. Ninject. Tùy chọn Tiêm
- 10. Tiêm bộ đệm khung
- 11. Rails JSON tiêm
- 12. Tiêm mã với C#
- 13. Tiêm generics với Guice
- 14. CDI loop tiêm
- 15. Tiêm vs ManagedProperty
- 16. Guice: Tránh tiêm lười
- 17. Tiêm mảng với Unity
- 18. Tiêm EntityManager Vs. EntityManagerFactory
- 19. PersistenceContext EntityManager tiêm NullPointerException
- 20. MongoDB Security
- 21. Portable MongoDB?
- 22. Tiêm HttpContext trong Ninject 2
- 23. Javascript được tiêm vào URL
- 24. Tiêm phụ thuộc với PowerShell
- 25. ADL và người bạn tiêm
- 26. IDisposable trên một kho tiêm
- 27. Tiêm CDI vào một FacesConverter
- 28. Tiêm EJB tĩnh, vô nghĩa?
- 29. Tiêm phụ thuộc vào MVC
- 30. Tiêm phụ thuộc là gì?
Bạn có thể làm rõ câu hỏi của mình bằng ngôn ngữ bạn định giao tiếp mongo không? Đã cập nhật câu hỏi –
câu hỏi – Mark