Le but des interfaces des verbes http


9

Dans Magento 2.3, il existe des interfaces pour tous les verbes http

  • Magento\Framework\App\Action\HttpPostActionInterface
  • Magento\Framework\App\Action\HttpGetActionInterface,
  • ...

Tous sont vides et implémentés Magento\Framework\App\ActionInterface.
J'ai également constaté que tous sont mappés dans app/etc/di.xmlun paramètre de Magento\Framework\App\Request\HttpMethodMapet de nombreux contrôleurs implémentent ces interfaces.
Mais pas tous les contrôleurs.
C'est tout ce que j'ai pu trouver à leur sujet.
Quel est leur but?

Réponses:


6

C'est pour améliorer la façon dont les contrôleurs gèrent leur validation, je crois. Nous avons eu quelques correctifs SUPEE corrigeant des choses comme la validation de clé de formulaire contournée par une demande GET ou similaire. Cette méthode devrait aider à les prévenir purement et simplement.

Pour améliorer la sécurité et la logistique, nous devons autoriser la limitation des actions au traitement uniquement des demandes avec certaines méthodes HTTP et ajouter ces limitations à autant d'actions existantes que possible. Il existe de nombreuses vulnérabilités causées par des actions traitant à la fois les requêtes GET et POST et permettant ainsi de contourner les validations de sécurité comme la validation des clés de formulaire. Limiter également les actions au traitement des demandes uniquement avec certaines méthodes servirait d'auto-documentation pour les classes d'actions et améliorerait la cohérence côté serveur pour le code client et les tests fonctionnels.

https://github.com/magento/architecture/blob/514952e8883234140071ec70f3b696d8267d52d0/design-documents/allowed-http-methods-for-actions.md

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.