【问题标题】:AppScreener says that my SQL code has some SQL Injection vulnerabilitiesAppScreener 说我的 SQL 代码有一些 SQL Injection 漏洞
【发布时间】:2020-03-27 13:39:58
【问题描述】:

我正在开发一个项目,我将在其中备份一些来自 Lotus Notes 的论坛和信息。我正在使用 Flask 运行后端。用代码扫描器 AppScreener 检查我的代码后,它说我的 SQL 代码有一些 SQL 注入漏洞,但我不明白为什么。

这是 AppScreener 结果:

for usuario in data:
print("Usuario", usuario)
status = usuario['estatus_usuario']
mail = usuario['email_usuario']
cursor = conn.cursor()

cursor.execute( "UPDATE administrador_usuarios SET estatus_usuario=%s
WHERE email=%s",(status,mail))  # ---> this is the line where according to AppScreener is the vulnerability present

conn.commit()
conn.close()
return json.dumps({"response":"ok"})

你能告诉我我能做什么吗?

【问题讨论】:

  • 不要使用常规字符串插值构建查询。请参阅little johnny tables,以幽默的方式了解如何利用这一点。也可以here 寻求解决方案。
  • 或搜索“SQL Injections”here,阅读那里的段落并查看上面的示例。

标签: python mysql python-3.x flask sql-injection


【解决方案1】:

这实际上取决于您用于 sql 的 DBAPI(pyodbc、pymysql、sqlite 等)。在大多数这些中,我认为 %s 符号在不久前已经贬值了。最好用?正如人们所评论的那样(参考链接)。

【讨论】:

  • 对不起,我忘了说我使用 PyMySQL 作为 DB API
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
  • 1970-01-01
  • 2016-12-09
  • 1970-01-01
  • 2021-12-21
  • 2019-08-26
  • 2015-05-07
相关资源
最近更新 更多