使用“数据库/sql”时如何防止 Go 中的 SQL 注入攻击?
这解决了单值字段问题,因为您可以删除引号,但我无法过滤 JSON/JSONB 字段,如下所示,因为 被$1
视为字符串:
`SELECT * FROM foo WHERE bar @> '{"baz": "$1"}'`
以下是可行的,但它容易出现 SQL 注入:
`SELECT * FROM foo WHERE bar @> '{"baz": "` + "qux" + `"}'`
我该如何解决这个问题?
我将如何使用这些函数构建这个[{"foo": $1}]
json jsonb_*
?尝试了以下但没有成功:
jsonb_build_array(0, jsonb_build_object('foo', $1::text))::jsonb
没有sql错误。过滤器不起作用。有一种方法可以检查构建的 sql 吗?我正在使用database/sql
本机库。
叮当猫咪
相关分类