Propel提供什么安全保障?

时间:2013-01-21 10:10:32

标签: php security propel

我正在使用Propel框架与数据库进行通信。当我尝试输入时,我认为它正在使用PDO并生成bindParam(),因此应该覆盖SQL注入。

但它是否提供额外的安全性,例如strip_tags()htmlspecialchars()或类似内容,还是我应该手动执行此操作?

之前我使用过PDO,所以我知道基础知识,但这是我第一次使用Propel。

2 个答案:

答案 0 :(得分:3)

我不希望ORM能够防范XSS攻击。这是一个与数据库层无关的问题(如果你想存储HTML,会导致问题)。

答案 1 :(得分:2)

Propel提供的唯一“安全性”是您提到的参数绑定。如果有人想存储html标签,特殊字符等,那么除此之外的任何事情都可能导致问题。也就是说,如果需要,您可以延长Propel为您做这件事。例如,您可以覆盖类中的setXxxx()方法:

class Book extends BaseBase {
  ...
  public static function setTitle($v) {
    return parent::setTitle(strip_tags($v));
  }
  ...
}

执行上述操作后,您可以在strip_tags()标题的任何时候执行Book。由于Propel在任何地方使用setter方法,你应该是好的。当然,您的代码必须在任何地方实际使用该setter以确保它发生。