zend框架清理数据

时间:2010-11-03 12:04:38

标签: php zend-framework sanitization

我看到各处都有不同的评论,有人说zend框架会自动清理发布/获取数据,但其他人则表示没有。

这笔交易是什么?我已经看到使用getParams上的foreach在predispatch中执行它是最快捷的方式,但有没有人有任何建议?

3 个答案:

答案 0 :(得分:4)

会自动清理任何请求数据。它不能,因为这需要它知道如何来消毒它,例如是$_GET['foo']应该对字符串进行消毒还是对数字进行消毒?你必须告诉它。

无论是在相应的控制器操作中还是在ActionHelper中手动清理输入,还是在Controller插件中自动清理输入,或者在引导程序中,还是混合使用这些输入都取决于您。

使用适当的。

答案 1 :(得分:4)

该交易可能与Zend_Controller_Request相比Zend_Db。请求数据通常放入数据库中。

请求对象不会转义任何内容。您可以强制它使用过滤器,表单过滤器或使用这里描述的反射技术:

Zend_Db查询基本上像其他ORM一样被转义,例如在PDO中。

答案 2 :(得分:1)

它肯定不会为您自动清理变量。您可以执行类似foreach的操作或使用array_map,具体取决于上下文,例如:

$_POST = array_map('mysql_real_escape_string', $_POST);

理想情况下,您应该根据具体情况处理每个变量。我个人使用PHP的filter_var进行过滤和消毒。