【问题标题】:Is dollar-quoting in Postgres enough to escape malicious inputs?Postgres 中的美元报价是否足以逃避恶意输入?
【发布时间】:2021-08-21 04:04:22
【问题描述】:

美元报价是否足以防止 SQL 注入等恶意输入?

例如:

SELECT * FROM mytable WHERE title = $secret$ hack'-- $secret$

用户输入在哪里

hack'--

【问题讨论】:

    标签: postgresql security dollar-quoting


    【解决方案1】:

    不,当然不是,因为黑客可以输入包含$secret$的字符串。

    您的建议被称为“默默无闻的安全”,并在安全专家中受到不尊重。例如,它根本不适用于开源软件。

    幸运的是,PostgreSQL 和所有相关 API 都具有使 SQL 语句的安全构造变得简单的功能。

    【讨论】:

    • 嗯,“秘密”将是存储在服务器环境变量中的生成密码。您能否指导或链接“使 SQL 语句的安全构造变得简单的函数”?
    • 即使风险很低,为什么不安全行事呢?每个 API 都有自己的功能。如果要使用数据库函数安全地构造 SQL 字符串,请使用 format。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 2016-03-10
    • 2011-09-13
    • 2013-09-28
    • 1970-01-01
    • 2019-08-30
    相关资源
    最近更新 更多