我正在桥接 R 和 psql,希望消除 sql 注入的漏洞。查看文档,我曾希望:
postgresqlExecStatement(con, statement, params, ...)
允许使用类似的东西:
postgresqlExecStatement(con, "DELETE FROM foos WHERE id = ? AND baz = ?", c(1, "bar"))
但不幸的是,这似乎不起作用。也许我使用了错误的参数符号(不是?)。
我发现的最佳折衷方案是通过以下方式转义字符串:
postgresqlEscapeStrings(con, string)
(注意:连接是必要的,因此函数可以知道如何正确转义)。
意味着我必须在将查询放在一起时转义我在粘贴中使用的每个字符串。没有那么优雅。但似乎是最好的选择。有人有其他想法吗?