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

问题描述:

我有点困惑,我应该用来逃避用户输出。使用Zend Framework逃避用户输出的最佳方式是什么?

首先,有个Zend_Filter_Input类看起来似乎做我想做的,但似乎面向批量过滤大量的项目。目前我只想过滤一个。另外,我对过滤器的定义比较困惑。 StringTrim过滤器和助手之间有什么区别?

是否有逃逸单元素更好的解决方案?

过滤器是在表单很大,这样就可以清洁&处理之前标准化数据/存储它。你提到了StringTrim - 你有其他的可以确保大写的输入,或者你的输入是全部数字(或字母数字或...)。请注意,这是为了确保数据的一致性和完整性 - 不是为了避免SQL注入 - ZF的数据库库将它作为一个单独的问题来处理。

在此翻盖侧,你逃避的东西输出。虽然“x < 5”或“PB & J”可能是在您的系统中存储和处理的完全有效数据,但它们在网页上显示时可能会导致问题。这就是为什么你通常会使用htmlspecialchars()htmlentities()--默认情况下,当你使用$this->escape($foo)时,Zend_View使用htmlspecialchar()。

+0

谢谢 - 我不知道逃生视图帮手。 – Ross 2009-02-03 22:44:47

使用htmlspecialchars()

如果这不是你想要的,请注明您是“越狱用户输出”的意思。

如果你担心安全问题,并希望自动跳脱类似于如何Django的不那么您可能会感兴趣本文中的所有变量。

How to automatically escape template variables in Zend_View