代码之家  ›  专栏  ›  技术社区  ›  ESP32

typo3-自己的viewhelper在t3 v8中转义HTML

  •  0
  • ESP32  · 技术社区  · 7 年前

    我有一个viewhelper,它在typo3 v7.x中工作得很好,但是在v8.x中,它的输出不再是纯HTML,而是HTML编码的。

    简化的ViewHelper类:

    namespace MyName\Teaserbox\ViewHelpers;
    class TeaserboxViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {
        public function render ( $html = null ) {
            return "<div><h2>$html</h2></div>"
        }
    }
    

    简化的HTML:

    <m:teaserbox><f:cObject typoscriptObjectPath="lib.someHTML"></f:cObject></m:teaserbox>
    

    输出类似于:

    &lt;div&gt;&lt;h2&gt;TEST&lt;/h2&gt;&lt;/div&gt;
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   derhansen    7 年前

    可以通过添加来关闭转义 protected $escapeOutput = false; 到您的ViewHelper。

    namespace MyName\Teaserbox\ViewHelpers;
    class TeaserboxViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {
        protected $escapeOutput = false;
    
        public function render ( $html = null ) {
            return "<div><h2>$html</h2></div>"
        }
    }
    

    这样做,您必须知道,为了防止XSS,您需要自己清理用户输入。

    推荐文章