【问题标题】:Fixing SQL Injection With _mysql使用 _mysql 修复 SQL 注入
【发布时间】:2013-03-11 00:37:06
【问题描述】:

我刚刚发现我使用 _mysql 的方式导致了一个主要的 SQL 注入问题。

我当前的代码如下:

db = _mysql.connect('', 'user', 'pass', 'db')
query = """SELECT * FROM stuff WHERE thing="{0}" """.format(user_input)
cur.query(query)

我做错了什么,我该如何解决它以确保安全?

我尝试过使用 _mysql.escape_string() 但仍然返回 SQL 语法错误。

【问题讨论】:

  • 嗯...你需要自学。这似乎是可以接受的来源:dev.mysql.com/tech-resources/articles/…>.
  • SQL 注入漏洞 与语法错误无关。请澄清您的确切问题。

标签: python mysql sql flask sql-injection


【解决方案1】:

您可以单独使用MySQLdb

conn = MySQLdb.connect();
curs = conn.cursor();
curs.execute("SELECT * FROM stuff WHERE thing = %s", (user_input));

如果您想坚持使用_mysql,请使用db.escape_string(user_input)

文档:http://mysql-python.sourceforge.net/MySQLdb.html

【讨论】:

  • 我决定只使用 MongoDB。
【解决方案2】:

可通过the bobby tables website 获得一个方便的参考。

您还可以在 In this powerpoint reference 中找到价值,它显示了一些 sql 注入示例以及缓解问题的可能方法。

【讨论】:

    猜你喜欢
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多