我有點困惑,我應該用來逃避用戶輸出。使用Zend Framework逃避用戶輸出的最佳方式是什麼?
首先,有個Zend_Filter_Input
類看起來似乎做我想做的,但似乎面向批量過濾大量的項目。目前我只想過濾一個。另外,我對過濾器的定義比較困惑。 StringTrim
過濾器和助手之間有什麼區別?
是否有逃逸單元素更好的解決方案?
我有點困惑,我應該用來逃避用戶輸出。使用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