使用Zend Framework逃避用户输出的最佳方式是什么?
问题描述:
我有点困惑,我应该用来逃避用户输出。使用Zend Framework逃避用户输出的最佳方式是什么?
首先,有个Zend_Filter_Input
类看起来似乎做我想做的,但似乎面向批量过滤大量的项目。目前我只想过滤一个。另外,我对过滤器的定义比较困惑。 StringTrim
过滤器和助手之间有什么区别?
是否有逃逸单元素更好的解决方案?
答
过滤器是在表单很大,这样就可以清洁&处理之前标准化数据/存储它。你提到了StringTrim - 你有其他的可以确保大写的输入,或者你的输入是全部数字(或字母数字或...)。请注意,这是为了确保数据的一致性和完整性 - 不是为了避免SQL注入 - ZF的数据库库将它作为一个单独的问题来处理。
在此翻盖侧,你逃避的东西输出。虽然“x < 5”或“PB & J”可能是在您的系统中存储和处理的完全有效数据,但它们在网页上显示时可能会导致问题。这就是为什么你通常会使用htmlspecialchars()
或htmlentities()
--默认情况下,当你使用$this->escape($foo)
时,Zend_View使用htmlspecialchar()。
答
如果你担心安全问题,并希望自动跳脱类似于如何Django的不那么您可能会感兴趣本文中的所有变量。
谢谢 - 我不知道逃生视图帮手。 – Ross 2009-02-03 22:44:47