Eu vejo muitas ocorrências desse comentário /* @escapeNotVerified */
nos arquivos de modelo do Magento2.
Tem algum significado especial?
Existe alguma utilidade para isso?
Exemplos:
Eu vejo muitas ocorrências desse comentário /* @escapeNotVerified */
nos arquivos de modelo do Magento2.
Tem algum significado especial?
Existe alguma utilidade para isso?
Exemplos:
Respostas:
Essa tag é usada por testes estáticos. Qualquer saída potencialmente insegura deve ser marcada com @escapeNotVerified
ou @noEscape
para passar nos testes, o último significa que esse uso específico foi verificado e é seguro.
Nas versões futuras, todas as ocorrências de @escapeNotVerified
serão verificadas e marcadas com @noEscape
ou escapadas por um destes 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
Observe também que algumas saídas são consideradas seguras e não devem ser marcadas com essas anotações:
getTitleHtml
, também devem gerar HTML escapadoEu o encontro nos devdocs do Magento2
Teste estático
Para melhorar a segurança contra injeções de XSS, um teste estático XssPhtmlTemplateTest.php
é adicionado ao dev \ tests \ static \ testsuite \ Magento \ Test \ Php.
Este teste estático encontra todas as chamadas de eco nos modelos PHTML e determina se é ou não escapado adequadamente.
Abrange os seguintes casos:
/* @noEscape */
antes da saída. A saída não requer escape. O teste é verde.
/* @escapeNotVerified */
antes da saída. O escape de saída não está marcado e deve ser verificado. O teste é verde.