Python 3.x MongoEngine:是否以及如何清理搜索和数据输入?

Python 3.x MongoEngine:是否以及如何清理搜索和数据输入?,python-3.x,mongoengine,input-sanitization,Python 3.x,Mongoengine,Input Sanitization,我正在一个项目中使用,我想知道在创建文档和搜索文档时是否需要以及如何清理用户输入 例如,当我通过使用feedparser从资源(如scraped RSS提要)提供数据来创建文档时,它们几乎可以有任何类型的字符串作为数据: RSS rss_link=news.link, link=news.feed.link, title=news.feed.title, subtitle=news.feed.subtitle, summary=news.feed.summary, 拯救 或者,当我公开所述集合以

我正在一个项目中使用,我想知道在创建文档和搜索文档时是否需要以及如何清理用户输入

例如,当我通过使用feedparser从资源(如scraped RSS提要)提供数据来创建文档时,它们几乎可以有任何类型的字符串作为数据:

RSS rss_link=news.link, link=news.feed.link, title=news.feed.title, subtitle=news.feed.subtitle, summary=news.feed.summary, 拯救 或者,当我公开所述集合以供用户查询以查找相关RSS资源时:

objects=RSS.objects.search\u textuser\u input.order\u by'$text\u score'
是否需要进行任何类型的输入消毒?这两种情况不同吗?似乎没有讨论这个问题。

保存文档时,MongoEngine将运行字段验证。如果在查询中使用用户输入,则需要对其进行清理,在这种情况下,我认为如果您关心注入,确保用户输入是字符串应该足够了。如前所述,注入可以通过使用字典来实现,因此清理

非常重要。因此,如果我理解正确,只需确保字符串数据类型足以用于搜索和插入?我相信是这样的,在插入过程中,mongoengine根据字段类型应用一些验证,但一般建议始终对用户输入进行清理