【发布时间】:2013-01-04 00:30:22
【问题描述】:
我觉得我错过了一个非常基本的概念。我可以使用一些说明或参考材料。
在我的网站上,我有一个用户在输入框中输入文本并将其提交到要存储的数据库。我使用下面代码块中的函数将该文本插入数据库,其中$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-tables 中概述的方法使用quote_ident() 和quote_literal 在我的SQL 函数中插入/更新用户输入字段。
我应该如何以安全的方式处理用户输入?
【问题讨论】:
-
不要使用
Pg.pm。它已经过时和过时了。 -
@PeterEisentraut,这就是我的想法(最新版本 2000-04-04),但我不确定。谢谢你告诉我。