El propósito de las interfaces de verbos http

9

En Magento 2.3 hay algunas interfaces para todos los verbos http

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

Todos ellos están vacíos e implementados Magento\Framework\App\ActionInterface.
También descubrí que todos ellos están asignados app/etc/di.xmla un parámetro de Magento\Framework\App\Request\HttpMethodMapy muchos de los controladores implementan estas interfaces.
Pero no todos los controladores.
Eso es todo lo que pude encontrar sobre ellos.
¿Cuál es su propósito?

Marius
fuente

Respuestas:

6

Creo que es para mejorar la forma en que los controladores manejan su validación. Hemos tenido bastantes parches SUPEE que corrigen cosas como la validación de la clave de formulario que se pasa por alto al ser una solicitud GET o similar. Este método debería ayudar a prevenirlos directamente.

Para mejorar la seguridad y la logística, debemos permitir limitar las Acciones para procesar solo solicitudes con ciertos métodos HTTP y agregar esas limitaciones a tantas Acciones existentes como sea posible. Hay muchas vulnerabilidades causadas por acciones que procesan solicitudes GET y POST y, por lo tanto, permiten omitir validaciones de seguridad como la validación de clave de formulario. Limitar también las acciones para procesar solo solicitudes con ciertos métodos serviría como documentación propia para las clases de Acción y mejoraría la consistencia del lado del servidor para el código del cliente y las pruebas funcionales.

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

Luke Rodgers
fuente