Der Zweck der http-Verben-Schnittstellen


9

In Magento 2.3 gibt es einige Schnittstellen für alle http-Verben

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

Alle von ihnen sind leer und implementiert Magento\Framework\App\ActionInterface.
Ich fand auch heraus, dass alle von ihnen app/etc/di.xmleinem Parameter von zugeordnet sind Magento\Framework\App\Request\HttpMethodMapund viele der Controller diese Schnittstellen implementieren.
Aber nicht alle Controller.
Das ist alles, was ich über sie finden konnte.
Was ist ihr Zweck?

Antworten:


6

Ich glaube, es geht darum, die Art und Weise zu verbessern, wie Controller mit ihrer Validierung umgehen. Wir hatten einige SUPEE-Patches, mit denen Probleme wie die Überprüfung von Formularschlüsseln behoben wurden, die durch eine GET-Anforderung oder ähnliches umgangen wurden. Diese Methode sollte helfen, sie direkt zu verhindern.

Um die Sicherheit und Logistik zu verbessern, müssen wir zulassen, dass Aktionen nur Anforderungen mit bestimmten HTTP-Methoden verarbeiten, und diese Einschränkungen möglichst vielen vorhandenen Aktionen hinzufügen. Es gibt viele Sicherheitslücken, die durch Aktionen verursacht werden, die sowohl GET- als auch POST-Anforderungen verarbeiten und somit das Umgehen von Sicherheitsüberprüfungen wie der Formularschlüsselüberprüfung ermöglichen. Die Beschränkung von Aktionen auf die Verarbeitung nur von Anforderungen mit bestimmten Methoden würde als Selbstdokumentation für Aktionsklassen dienen und die Konsistenz der Serverseite für Clientcode und Funktionstests verbessern.

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.