我觉得我错过了一个非常基本的概念。我可以使用一些说明或参考材料。
在我的网站上,我有一个用户在输入框中输入文本并将其提交到要存储的数据库。我使用下面代码块中的函数将该文本插入数据库,其中$conn->exec(query)
来自Pg.pm。
$conn->exec("select someFunc($mykey,'text to insert');");
现在,这可行,但容易受到 sql 注入的攻击,或者即使用户输入逗号,它也会中断。
我阅读了有关DBD::Pg的内容,其中包含prepare
我想要的语句,但我找不到与Pg.pm
. 我错过了吗?
如果Pg.pm
不支持prepare
。我应该使用支持该prepare
语句的 perl 模块吗?或者我可以按照bobby-tablesquote_ident()
中概述的方法使用quote_literal
插入/更新用户输入字段的 SQL 函数。
我应该如何以安全的方式处理用户输入?