使用Flask和MongoDB时,清理输入的最佳方法是什么?

xdnvmnnf  于 2022-11-28  发布在  Go
关注(0)|答案(2)|浏览(129)

我正在用Python Flask编写我的应用程序后端。作为注册过程的一部分,我有一个表单,它将新用户的信息发送到我的后端,然后将其添加到我的MongoDB数据库中。
我在这个世界上是个新手,从来没有写过需要保护的东西。
我的Python代码如下所示:

from flask import Flask, request

app = Flask(__name__)

@app.route('/register', methods=['POST'])
def register():
    username = request.form['username']
    password = request.form['password']

有没有一个Python库可以为我清理request.form['username']request.form['password']字段?可以让我免受XSS和数据泄露的威胁?
先谢谢了!

bfrts1fy

bfrts1fy1#

我过去用过Python漂白剂。https://github.com/mozilla/bleach
我想这对你的案子可能有用。

2exbekwf

2exbekwf2#

避免注入的最好方法之一是使用ORM并避免原始查询。对于MongoDB,它可以是flask_mongoengine或motor。它们都提供了跳出框的功能(除了某些情况)。
但是您应该注意传递给查询的变量类型。
例如,

query = Model.objects.filter(field=value)

valuestrint时,一切都很好,但如果它看起来像{'$gte': ''}呢?
所以强烈推荐flank-wtf或棉花糖来避免这样的问题。

相关问题