[英]Populate form (wtforms) in flask with data from database using psycopg2
[英]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.