使用Zend Framework逃避用户输出的最佳方法是什么?

Ros*_*oss 0 php zend-framework

我应该用什么来逃避用户输出,我有点困惑.

首先,这个Zend_Filter_Input类看起来可能会做我想要的但似乎是面向批量过滤大量项目.目前我只想过滤一个.另外,我对与过滤器相比的escaper的定义感到有些困惑.StringTrim过滤器和逃生器之间有什么区别?

是否有更好的解决方案来逃避单个元素?

Sea*_*ing 5

过滤器在表单上非常棒,因此您可以在处理/存储数据之前清理和规范化数据.你提到了StringTrim - 你有其他的确保大写或你的输入都是数字(或字母或数字......).请注意,这是为了确保数据的一致性和完整性 - 而不是为了避免SQL注入 - ZF的数据库库将其作为一个单独的问题处理.

在另一方面,你可以逃避输出.虽然"x <5"或"PB&J"可能是在系统中存储和处理的完全有效的数据,但它们可能会在网页上显示时出现问题.这就是你通常使用的原因,htmlspecialchars()或者htmlentities()- 默认情况下,Zend_View使用htmlspecialchar()$this->escape($foo).