Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 888

参数化查询

审核人Cybersecurity entrepreneur & security researcher

参数化查询 是什么?

参数化查询通过占位符将取值与 SQL 文本分开传输的数据库查询,用户输入永远无法改变查询的结构。


参数化查询(也称预编译语句)允许开发者预先编译带有「?」或「:id」等占位符的 SQL 模板,然后将值绑定到占位符。数据库引擎将这些参数严格视为数据而非 SQL 语法的一部分,因此即使输入中含有引号、分号或注释也无法改变查询逻辑。它是 SQL 注入(CWE-89)的标准缓解措施,几乎所有数据库驱动与 ORM 都支持。对于任何包含不可信输入的 SQL,都应默认采用参数化查询,并配合最小权限的数据库账号、白名单输入校验,以及处理动态标识符的安全 ORM 接口。

示例

  1. 01

    使用「SELECT * FROM users WHERE id = ?」并绑定整数参数,而非拼接用户 ID。

  2. 02

    在 PDO 或 psycopg 中使用命名参数与字典传值,代替字符串格式化。

常见问题

参数化查询 是什么?

通过占位符将取值与 SQL 文本分开传输的数据库查询,用户输入永远无法改变查询的结构。 它属于网络安全的 应用安全 分类。

参数化查询 是什么意思?

通过占位符将取值与 SQL 文本分开传输的数据库查询,用户输入永远无法改变查询的结构。

如何防御 参数化查询?

针对 参数化查询 的防御通常结合技术控制与运营实践,详见上方完整定义。

参数化查询 还有哪些其他名称?

常见的别称包括: 预编译语句, 绑定参数查询。

相关术语