O objetivo das interfaces de verbos http

9

No Magento 2.3, existem algumas interfaces para todos os verbos http

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

Todos eles estão vazios e implementam Magento\Framework\App\ActionInterface.
Também descobri que todos eles estão mapeados app/etc/di.xmlpara um parâmetro Magento\Framework\App\Request\HttpMethodMape muitos controladores implementam essas interfaces.
Mas nem todos os controladores.
Foi tudo o que pude encontrar sobre eles.
Qual é o propósito deles?

Marius
fonte

Respostas:

6

É para melhorar a maneira como os controladores lidam com a validação, acredito. Tivemos alguns patches SUPEE corrigindo coisas como a validação de chave de formulário sendo ignorada por ser uma solicitação GET ou semelhante. Este método deve ajudar a evitá-los completamente.

Para melhorar a segurança e a logística, precisamos permitir que as ações limitadas processem apenas solicitações com certos métodos HTTP e incluam essas limitações no maior número possível de ações existentes. Existem muitas vulnerabilidades causadas por ações que processam solicitações GET e POST, permitindo assim ignorar validações de segurança como validação de chave de formulário. Também limitar ações para processar somente solicitações com determinados métodos serviria como autodocumentação para classes Action e melhoraria a consistência do lado do servidor para código de cliente e testes funcionais.

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

Luke Rodgers
fonte