繁体   English   中英

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

[英]If I receive post data with Flask, put that data into a WTForms form and it successfully validates, is it safe from SQL injection attacks?

我正在为我的应用程序使用Flask,WTForms和OurSQL MySQL库。 我从request.form变量接收post数据。 我把它放到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))

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

表单验证和SQL是单独的问题。 表单验证的工作是确保数据有意义。 SQL代码的工作是安全地存储数据。 SQL注入攻击基本上是对SQL相关代码的攻击。 你提供的代码片段,使用cursor.execute? 占位符,在将数据发送到SQL之前会进行适当的引用,因此不可能进行SQL注入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM