のドキュメントはメソッドをZend_View
示していescape($var)
ます。また、表示する変数ごとに手動で呼び出す必要があることも示唆しています。$this->escape($this->var);
Zend_View
自動的に脱出するために拡張する方法はありますか?
のドキュメントはメソッドをZend_View
示していescape($var)
ます。また、表示する変数ごとに手動で呼び出す必要があることも示唆しています。$this->escape($this->var);
Zend_View
自動的に脱出するために拡張する方法はありますか?
これは、2つの理由から考慮すると危険なことです。
まず、必要なエスケープのタイプは、変数が出力されるコンテキストによって異なります。<script>
たとえば、一部のHTMLの途中で文字列を出力するには、一部のタグ内で、またはHTML属性の値として出力する場合とは異なる文字をエスケープする必要があります。
次に、オブジェクトについてどうしますか?echo $this->name
vs.を検討してください(クラスのインスタンスはecho $this->user->name
どこにありますか)。$this->user
後者の例では、呼び出し->name
の結果である動的に生成された文字列である可能性もあり__get()
ます。これを自動エスケープする方法はないため、データの一部が自動エスケープされ、一部が自動エスケープされない状況になります。間違いなく、これは、すぐに使用できるエスケープ・イット・ユアセルフのアプローチよりも安全性が低くなります。これは、誤った安心感をもたらすためです。
これは、カスタムストリームハンドラーを使用するカスタムViewクラスを使用することで実装できると思います。
このような実装の詳細は、Rob Allen(http://akrabat.com/zend-framework/a-view-stream-with-zend_view/ )によって提供されています。