Magento 2 @escapeNotVerified


65

25
嘿...为什么要投票?我不允许提问吗?
马吕斯

Answers:


95

静态测试使用此标记。任何潜在的不安全输出都必须标有@escapeNotVerified或,@noEscape以通过测试,后者表示已经检查了此特定用法并且是安全的。

在将来的发行版中,所有出现的@escapeNotVerified都将被验证,并可用@noEscape以下方法之一标记或转义:

  • \Magento\Framework\View\Element\AbstractBlock::escapeHtml
  • \Magento\Framework\View\Element\AbstractBlock::escapeUrl
  • \Magento\Framework\View\Element\AbstractBlock::escapeXssInUrl
  • \Magento\Framework\View\Element\AbstractBlock::escapeQuote

另请注意,某些输出被认为是安全的,不应使用以下注释进行标记:

  • 用单引号引起来
  • 用双引号括起来但没有变量
  • 类型转换为bool,int
  • 名称中包含'html'的方法调用(例如getTitleHtml)也应该输出转义的HTML

3
伟人回答@Alex
Amit Bera

Good Ans +1 @Alex :)
Rama Chandran M

它有助于+1
@Alex

4
按照目前的速度,更换工作大约在2026年完成:D
Fabian Schmengler

26

我在Magento2的devdocs中找到它

静态测试

为了提高针对XSS注入的安全性,将静态测试XssPhtmlTemplateTest.php添加到dev \ tests \ static \ testsuite \ Magento \ Test \ Php。

此静态测试在PHTML模板中查找所有回显调用,并确定是否正确进行了转义。

它涵盖以下情况:

  • /* @noEscape */在输出之前。输出不需要转义。测试是绿色的。

  • /* @escapeNotVerified */在输出之前。未检查输出转义,应进行验证。测试是绿色的。

阅读Magento的文档2.02.1

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.