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 @escapeNotVerified
ou @noEscape
pour 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 @escapeNotVerified
seront vérifiées et marquées @noEscape
ou é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::escapeQuote
Notez é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.php
est 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.