输入过滤器/ val输出正确转义zf2?

时间:2017-10-31 10:20:40

标签: php zend-framework2 xss

我是否正确理解,我需要像这样逃避视线:

 <div id="search-box">
        <?php $escaper = new Zend\Escaper\Escaper('utf-8'); ?>
        <input type="text" placeholder="<?php echo $escaper->escapeHtml($this->languageText('TEXT_SEARCH_OUR_SITE',"Search Our Site"));
       ?>" name="query" id="query" />
        <div class="search-box-bk"></div>
    </div>

如何在控制器中正确过滤或验证此行:

$this->view->phrase = $this->getRequest()->getParam('phrase','');

1 个答案:

答案 0 :(得分:1)

如何正确地转义某些内容取决于上下文。在您的示例中,变量正在HTML属性中输出,因此您应该使用escapeHtmlAttr

<input type="text" placeholder="<?php echo $escaper->escapeHtmlAttr($this->languageText('TEXT_SEARCH_OUR_SITE',"Search Our Site"));
   ?>" name="query" id="query" />

list of escape functions in the overview of the component

至于你需要在控制器中做什么,答案是:可能没什么,但这取决于你将使用“短语”。