Je vois beaucoup d'occurrences de ce commentaire /* @escapeNotVerified */dans les fichiers modèles pour Magento2.
At-il une signification particulière?
Y a-t-il une utilité à cela?
Exemples:
Je vois beaucoup d'occurrences de ce commentaire /* @escapeNotVerified */dans les fichiers modèles pour Magento2.
At-il une signification particulière?
Y a-t-il une utilité à cela?
Exemples:
Réponses:
Cette balise est utilisée par les tests statiques. Toute sortie potentiellement non sécurisée doit être marquée avec @escapeNotVerifiedou @noEscapepour réussir les tests, ce qui signifie que cette utilisation a été vérifiée et est sûre.
Dans les versions à venir, toutes les occurrences de @escapeNotVerifiedseront vérifiées et marquées @noEscapeou échappées avec l'une des méthodes suivantes:
\Magento\Framework\View\Element\AbstractBlock::escapeHtml\Magento\Framework\View\Element\AbstractBlock::escapeUrl\Magento\Framework\View\Element\AbstractBlock::escapeXssInUrl\Magento\Framework\View\Element\AbstractBlock::escapeQuoteNotez également que certaines sorties sont considérées comme sûres et ne doivent pas être marquées avec de telles annotations:
getTitleHtml, devraient également générer du code HTML échappé.Je le trouve dans les devdocs de Magento2
Test statique
Pour améliorer la sécurité contre les injections XSS, un test statique XssPhtmlTemplateTest.phpest ajouté dans dev \ tests \ static \ testsuite \ Magento \ Test \ Php.
Ce test statique trouve tous les appels d'écho dans les modèles PHTML et détermine s'il est correctement échappé ou non.
Il couvre les cas suivants:
/* @noEscape */avant la sortie. La sortie ne nécessite pas de s'échapper. Le test est vert.
/* @escapeNotVerified */avant la sortie. La sortie d'échappement n'est pas vérifiée et doit être vérifiée. Le test est vert.