Magento 2 @escapeNotVerified

65

Veo muchas ocurrencias de este comentario /* @escapeNotVerified */en los archivos de plantilla para Magento2.
¿Tiene un significado especial?
¿Hay algún uso para esto?

Ejemplos:

Marius
fuente
25
Oye ... ¿Por qué el voto negativo? ¿No tengo permitido hacer preguntas?
Marius

Respuestas:

95

Esta etiqueta es utilizada por pruebas estáticas. Cualquier salida potencialmente insegura debe marcarse con @escapeNotVerifiedo @noEscapepara aprobar las pruebas, esto último significa que este uso en particular se ha verificado y es seguro.

En futuras versiones, todas las ocurrencias de @escapeNotVerifiedserán verificadas y marcadas @noEscapeo escapadas con uno de estos métodos:

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

También tenga en cuenta que algunos resultados se consideran seguros y no deben marcarse con tales anotaciones:

  • Encerrado entre comillas simples
  • Entre comillas dobles pero sin variables
  • Escriba casting para bool, int
  • getTitleHtmlTambién se espera que las llamadas a métodos que contienen 'html' en sus nombres, como salida, generen HTML
Alex Paliarush
fuente
3
Greats answer @Alex
Amit Bera
Good Ans +1 @Alex :)
Rama Chandran M
Ayuda a +1 @ Alex
Nikunj Vadariya
44
Al ritmo actual, el reemplazo se realizará aproximadamente 2026: D
Fabian Schmengler
26

Lo encuentro en devdocs de Magento2

Prueba estática

Para mejorar la seguridad contra las inyecciones de XSS, XssPhtmlTemplateTest.phpse agrega una prueba estática a dev \ tests \ static \ testsuite \ Magento \ Test \ Php.

Esta prueba estática encuentra todas las llamadas de eco en plantillas PHTML y determina si se ha escapado correctamente o no.

Cubre los siguientes casos:

  • /* @noEscape */antes de la salida. La salida no requiere escapar. La prueba es verde.

  • /* @escapeNotVerified */antes de la salida. El escape de salida no está marcado y debe verificarse. La prueba es verde.

Lea los documentos de Magento en 2.0 o 2.1

Cuenta
fuente