我认为你知道sql注入,和nosql相同,称为orm注入。
我使用pymongo和mongodb,我有一个简单的find()和$ regexp操作符查找的用户控制输入。
如何“清理”输入?Pymongo ORM注射?消毒输入
回答
那么,如果你说到ORM注入那么你说的是关系数据库系统,而不是真正的MongoDB或NoSQL系统。 PyMongo不是一个ORM工具,因此不会发生ORM注入。
MongoDB查找操作不会修改或删除集合中的任何数据。所以你对于不可信的输入很安全。
可能发生,因为解释here的唯一的事情,是一个坏的查询可能会降低系统速度下降了做这样的事情:
{"$where": "function() { for (var i=0; i<1000000; i++) {}; return true; }"}
这意味着你可以在你的代码确保,没有功能通过用户参数传输。
你是什么意思,“这意味着你可以确保你的代码,没有功能通过用户参数传输。“请你能给我们举个例子吗? – tapioco123
我已经举了一个例子。确保用户不会像我在答案中所显示的那样写一些东西来作为where语句。因此,例如,确保where字符串不包含子字符串“function()”。 – thomas
我没有$ where,只是e $ regexp。或者我错过了什么? – tapioco123
- 1. 消毒输入
- 2. Tastypie消毒输入?
- 3. 消毒Silverlight输入
- 4. TinyMCE消毒输入
- 5. 消毒膏输入
- 6. ReactJS输入消毒
- 7. PHP消毒输入
- 8. asp.net消毒用户输入
- 9. 从IRC消毒输入
- 10. Angular 2输入消毒
- 11. PHP输入消毒剂?
- 12. PHP输入消毒功能?
- 13. 对BinaryFormatter的消毒输入
- 14. 消毒货币输入
- 15. Zend的消毒输入
- 16. .Net DbCommand消毒输入
- 17. 使用AEM消毒输入
- 18. 输入消毒VS验证
- 19. 对MongoDB的输入进行消毒
- 20. oracle中的SQL注入与消毒输入
- 21. 使用jQuery消毒代码注入
- 22. 消毒json输入到java服务器
- 23. 消毒用户输入路径名称
- 24. 使用libpq/libpqxx输入消毒
- 25. MVC Razor输入消毒 - 如何安全?
- 26. XSS攻击 - 消毒输入vs拒绝
- 27. PHP - 非破坏性输入消毒
- 28. 消毒任意用户输入
- 29. 如何处理输入消毒?
- 30. 简单的用户输入消毒
我在这写了另一个答案:http://stackoverflow.com/questions/13099301/nosql-injection-in-python/13100786#13100786 – Sammaye