Python中的SQL注入预防 - 正在使用参数化查询吗?

时间:2011-03-22 17:22:48

标签: python sql-injection

我有以下python代码:

row = conn.execute('''SELECT admin FROM account WHERE password = ?''',
(request.headers.get('X-Admin-Pass'),)).fetchone()

我的问题是这段代码对于SQL注入是否安全?因为我应该使用参数化查询。但是,由于我直接从标题传递用户信息,我有点担心:)

关于这个问题的任何想法?

2 个答案:

答案 0 :(得分:2)

将数据插入数据库的方式将确保SQL攻击不起作用,execute方法将自动将作为元组传递的参数作为其第二个参数传递给查询。

你这样做是正确的。

答案 1 :(得分:1)

如果您的模块使用DBI specs,那么您的参数设置正常。除非你想研究防止特定的SQL攻击,否则对查询进行参数化是一个很好的防范SQL注入的方法。