Magento 2 @escapeNotVerified

65

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:

Marius
la source
25
Hé ... Pourquoi le vote négatif? Je ne suis pas autorisé à poser des questions?
Marius

Réponses:

95

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::escapeQuote

Notez également que certaines sorties sont considérées comme sûres et ne doivent pas être marquées avec de telles annotations:

  • Entre guillemets simples
  • Entre guillemets mais sans variable
  • Type casting à bool, int
  • Les appels de méthode contenant "html" dans leurs noms, comme getTitleHtml, devraient également générer du code HTML échappé.
Alex Paliarush
la source
3
Les grands répondent @Alex
Amit Bera
Bonne Ans +1 @Alex :)
Rama Chandran M
Cela aide +1 @Alex
Nikunj Vadariya
4
Au rythme actuel, le remplacement sera fait vers 2026: D
Fabian Schmengler le
26

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.

Lire les documents Magento à 2.0 ou 2.1

Facture
la source