【问题标题】:How to sanitize PSQL LIKE query against injection attacks - SQALCHEMY PYTHON如何清理 PSQL LIKE 查询以防止注入攻击 - SQLALCHEMY PYTHON
【发布时间】:2019-09-18 09:37:31
【问题描述】:

当我传递一些取自表单的变量时,我正在尝试使用 python 清理 sql 查询。我有以下内容:

listOfBooks = db.execute("SELECT * from books WHERE " + searchParameter + " LIKE" + "'%"+ ":searchString" +"%'", {"searchString": searchString} ).fetchall()

但显然它给了我一个错误,因为它将它解释为

SELECT * from books WHERE isbn LIKE'%'2017'%',

所以问题是 2017 年左右有多余的单引号不应该存在。

如何解决?

干杯!

【问题讨论】:

    标签: python sql-like psql sanitization


    【解决方案1】:

    我不确定您使用哪种语言,我假设它是 Java,在这种情况下,您应该像这样将单引号替换为双单引号

    searchString.replace("'", "''")
    

    【讨论】:

    • 对不起,我的意思是写我正在使用python!
    • 如果我没记错的话,python的语法也是一样的
    • 语句解释的输出是什么?
    • 还是一样,SELECT * from books WHERE year LIKE'%'2017'%'
    • 你不希望在 searchString 中有任何引号:searchString.replace("'", "")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 2015-11-04
    • 1970-01-01
    相关资源
    最近更新 更多