我有以下python代码:
row = conn.execute('''SELECT admin FROM account WHERE password = ?''',
(request.headers.get('X-Admin-Pass'),)).fetchone()
我的问题是这段代码对于SQL注入是否安全?因为我应该使用参数化查询。但是,由于我直接从标题传递用户信息,我有点担心:)
关于这个问题的任何想法?
答案 0 :(得分:2)
将数据插入数据库的方式将确保SQL攻击不起作用,execute方法将自动将作为元组传递的参数作为其第二个参数传递给查询。
你这样做是正确的。
答案 1 :(得分:1)
如果您的模块使用DBI specs,那么您的参数设置正常。除非你想研究防止特定的SQL攻击,否则对查询进行参数化是一个很好的防范SQL注入的方法。