Php 有没有办法在Zend中自动筛选getRequest()参数?
我真的不想在每次getRequest->getParam('x')之后调用代码中的Zend过滤器,如果我不需要的话。有没有一种惰性的方法可以神奇地过滤getRequest中的所有内容 Edit:当我说filter时,我的意思是转义标记、清除XSS以及转义任何sql转义字符 i、 e:Php 有没有办法在Zend中自动筛选getRequest()参数?,php,zend-framework,Php,Zend Framework,我真的不想在每次getRequest->getParam('x')之后调用代码中的Zend过滤器,如果我不需要的话。有没有一种惰性的方法可以神奇地过滤getRequest中的所有内容 Edit:当我说filter时,我的意思是转义标记、清除XSS以及转义任何sql转义字符 i、 e: 标准是什么?你是怎么做到的?有几种方法可以解决你的情况 首先,您可以一次获取所有参数: $params = $this->_request->getParams(); //_request is equ
标准是什么?你是怎么做到的?有几种方法可以解决你的情况 首先,您可以一次获取所有参数:
$params = $this->_request->getParams(); //_request is equivalent to getRequest()
因此,筛选所有参数的惰性方法是在声明筛选器时使用******,这意味着所有字段,看起来类似于:
$filters = array('*' => array('StringTrim','HtmlEntities','StripTags'));
$input = new Zend_Filter_Input($filters,$validators,$params);
if($input->isValid()) {
//blah blah blah
}
您应该阅读更多有关对象的信息,以及,和。有几种方法可以处理您的情况 首先,您可以一次获取所有参数:
$params = $this->_request->getParams(); //_request is equivalent to getRequest()
因此,筛选所有参数的惰性方法是在声明筛选器时使用******,这意味着所有字段,看起来类似于:
$filters = array('*' => array('StringTrim','HtmlEntities','StripTags'));
$input = new Zend_Filter_Input($filters,$validators,$params);
if($input->isValid()) {
//blah blah blah
}
您应该阅读更多关于对象的信息,以及,和。karim79的回答涵盖了在一个数组中获取参数 一般来说,您不需要对每个请求使用Zend_过滤器来清理数据 要防止XSS,应在视图中转义数据输出:
$this->escape($someUserSuppliedData)
在处理Zend_Db时,插入和更新等方法会为您引用数据。手动构造查询时,您可以使用Zend_Db函数,如karim79的答案包含在一个数组中获取参数 一般来说,您不需要对每个请求使用Zend_过滤器来清理数据 要防止XSS,应在视图中转义数据输出:
$this->escape($someUserSuppliedData)
在处理Zend_Db时,插入和更新等方法会为您引用数据。当手动构造查询时,您可以使用Zend_Db函数,如,唯一的方法是使用各种方法
- 使用
(如上所述,由karim79)将内容过滤到应该如何存储或查找(使用Zend\u Filter\u Input
剥离标签,转换为StripTags
,Int
等),在需要验证的地方进行验证-但不验证htmlentities,因为这可能应该在输出上进行,以避免数据库搜索等方面的复杂性。在大多数情况下,字段应该单独过滤/验证StringTrim
- 始终使用参数化查询(
with?占位符),或者至少使用Db escape函数Zend\u Db\u Select
- 根据需要转义所有输出(
->Zend\u View\u Helper\u escape
)$this->escape()
- 使用
(如上所述,由karim79)将内容过滤到应该如何存储或查找(使用Zend\u Filter\u Input
剥离标签,转换为StripTags
,Int
等),在需要验证的地方进行验证-但不验证htmlentities,因为这可能应该在输出上进行,以避免数据库搜索等方面的复杂性。在大多数情况下,字段应该单独过滤/验证StringTrim
- 始终使用参数化查询(
with?占位符),或者至少使用Db escape函数Zend\u Db\u Select
- 根据需要转义所有输出(
->Zend\u View\u Helper\u escape
)$this->escape()
- 也许他正在寻找一种方法来重载getRequest()方法,然后在新创建的方法中过滤request对象
退房:
然后,您可以使用Zend_Filter类或创建自己的筛选器类来重载上述内容。也许他正在寻找一种方法来重载getRequest()方法,然后在新创建的方法中筛选request对象 退房: 然后,您可以使用Zend_过滤器类或创建自己的过滤器类来重载上述内容