> Magento2中文手册 > 模板 XSS 安全

模板 XSS 安全

对于XSS攻击的安全措施

为了防止XSS问题Magento推荐以下转义输出模板中的规则:

  • 如果方法指示内容已转义,则不要转义: getTitleHTML(), getHtmlTitle() (标题已为HTML输出做好准备)

  • 类型转换和PHP函数 count() 不需要逸出 (例如 echo (int)$var, echo (bool)$var, echo count($var))

  • 单引号的输出不需要转义 (例如 echo 'some text')

  • 无变量双引号的输出不需要转义 (例如 echo "some text")

下面的代码示例说明了模板的XSS安全输出:

<?php echo $block->getTitleHtml() ?>
<?php echo $block->getHtmlTitle() ?>
<?php echo $block->escapeHtml($block->getTitle()) ?>
<h1><?php echo (int)$block->getId() ?></h1>
<?php echo count($var); ?>
<?php echo 'some text' ?>
<?php echo "some text" ?>
<a href="<?php echo $block->escapexssInUrl($block->getUrl()) ?>"><?php echo $block->getAnchorTextHtml() ?
></a>
  <!-- In this example $postData is a json string -->
  <button class="action" data-post='<?php /* @noEscape */ echo $postData ?>' />
  <span class="label"><?php echo $block->escapeHtml($block->getLabel()) ?></span>
  <a href="<?php echo $block->escapeUrl($block->getCategoryUrl()) ?>">Some Link</a>
  <span class="<?php $block->escapeQuote($block->getSpanClass()) ?>">Product Description</span>