如果我使用Flask接收发布数据,将该数据放入WTForms表单并成功验证,是否可以免受SQL注入攻击?

dav*_*gan 5 python mysql sql-injection flask wtforms

我正在为我的应用程序使用Flask,WTForms和OurSQL MySQL库.我从request.form变量收到帖子数据.我把它放到WTForms表单对象中.我调用validate()该表单,然后使用OurSQL将表单数据插入MySQL数据库.

没有做任何额外的处理,我是否可以安全地从SQL注入?WTForms validate方法是否可以逃脱?如果没有,我该怎么做才能逃避数据?我正在做的一个例子如下:

form = MyWTFFormsForm(request.form)
if form.validate():
    cursor.execute("INSERT INTO mytable VALUES (?, ?, ?, ?, ?);",
            (form.field1.data, form.field2.data, form.field3.data,
             form.field4.data,
             form.field5.data))
Run Code Online (Sandbox Code Playgroud)

ick*_*fay 5

据我所知,WTForms和Flask都没有逃脱SQL的数据,但使用像你这样的占位符消除了转义的需要.