J'ai remarqué une classe vendor/magento/framework/Escaper.php
qui contient quelques méthodes de sécurité utiles utilisées à l'intérieur (principalement) des modèles. Certains d'entre eux sont assez courants ( escapeHtml()
), mais certains sont difficiles à rencontrer.
- Quelle méthode et
escapeXssInUrl()
vraiment? - En cas de méthode
escapeJsQuote()
- quel est l'endroit où ces citations peuvent être trouvées? Uniquement en lignejs
dans les modèles? - Quelqu'un at-il une explication claire quand toutes les méthodes doivent être utilisées (exemples pratiques)?
- Quelle est la différence entre
escapeUrl()
etescapeXssInUrl()
et si le second nous offre une meilleure sécurité, pourquoi ne pas toujours utiliser le second à la place en n'échappant que les caractères html? escapeQuote()
devrait être utilisé par exemple pour faire écho à une variable dans une situation comme celle-ci<div value="<?php echo
[ici?]$value?>"></div>
?
escapeUrl()
etescapeXssInUr()l
? Il convient de noter queThe upcoming release of Magento 2.2 will deprecate these functions. Please check back on this page after the 2.2 release for updated documentation on new escape functions.
Il y a une entrée utile dans les DevDocs sur la sécurité des modèles: Mesures de sécurité contre les attaques XSS
Re
escapeXssInUrl
: La fonctionescapeUrl
appelle enescapeXssInUrl
interne plusescapeHtml
après. Magento utilise également enescapeUrl
interne.Assurez-vous de vérifier les nouvelles fonctions d'échappement une fois Magento 2.2. est sorti car il y en aura de nouveaux à venir:
Et vous pourriez aussi bien être intéressé de consulter ma présentation à ce sujet ici: Gestion sécurisée des entrées et des sorties - Meet Magento Romania 2016
la source
escapeXssInUrl()
- alors devrais-je utiliserescapeUrl()
insted? «Règles de validation Eav Backedn» - Je suppose qu'elles sont simplement utilisées automatiquement et que je les utilise déjà? Ou est-ce que cela devrait les implémenter à des endroits où des entrées sont ajoutées?escapeUrl
queescapeXssInUrl
comme cela s'appelle en interne: github.com/magento/magento2/blob/…