【问题标题】:Adodb doesn't support security practices?Adodb 不支持安全实践?
【发布时间】:2011-06-02 15:20:33
【问题描述】:

我开始为 php5 使用 ADODB,因为我想升级我的工具从常规的 mysql 函数,但我很惊讶它根本没有清理来自 sql 注入的查询,这是否真的受支持?如何开启?

感谢任何帮助。

【问题讨论】:

  • ADODB 不会为您完成工作。它可以缓解它,但它不是一根魔杖,可以在没有任何理解的情况下使用。
  • @Col。 Shrapel 我建议你根据自己的曲调工作。我知道大多数程序员都是这样的,但对“社交”更友好一点也没有坏处。
  • 不是音调,而是注意。一个非常简单的:事实上,如果使用得当,Mysql 函数的安全性不亚于 ADODOB。如果盲目使用 ADODB 也无济于事。所以,你不需要一些“魔法”工具,而是理解。够清楚吗?
  • 另外,你必须努力培养自己的态度。这不是“ADODB 不支持安全实践”。它'你没有使用它。感受不同。
  • 我没那么笨,我明白了,我只是给了你另一个“注释”。虽然实现一个小功能来清理 ADODB 中的行并不是真的不可能,是吗?所以这个功能就是我要求的..

标签: php mysql adodb


【解决方案1】:

准备好的语句保护您免受 SQL 注入,来自 ADODB 文档:

$arr = array(

         array('Ahmad',32),
         array('Zulkifli', 24),
         array('Rosnah', 21)

         );

$ok = $db->Execute('insert into table (name,age) values (?,?)',$arr);

但是,由于同时使用了 ADODB 和 PDO,我强烈建议您改为学习 PDO。

【讨论】:

  • 非常感谢您的帮助,但我真的不知道如何使用 SELECT & WHERE。有什么想法吗?
  • 同理——SQL 中的任何占位符(a ?)都按顺序替换为数组的值,即。 $db->Execute("SELECT field FROM TABLE WHERE COND=?", array($val));你可以find the manual here。再说一次,如果您现在才刚刚学习,我强烈建议您选择 PDO 而不是 ADODB,因为您可以从更多的人那里获得帮助,并使用更强大、经过审查的库。
  • 谢谢,我想我要切换到 PDO 了!
  • 使用 PDO 即可。它已内置于核心中。
猜你喜欢
  • 1970-01-01
  • 2016-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
  • 2021-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多