http动词接口的目的


9

在Magento 2.3中,所有http动词都有一些接口

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

所有的人都是空的并且执行Magento\Framework\App\ActionInterface
我还发现它们全部都映射app/etc/di.xml到的参数中,Magento\Framework\App\Request\HttpMethodMap并且许多控制器都实现了这些接口。
但并非所有控制器。
这就是我能找到的所有信息。
他们的目的是什么?

Answers:


6

我相信这是为了改善控制器处理其验证的方式。我们已经有很多SUPEE补丁程序修复了诸如通过GET请求或类似请求绕过表单密钥验证之类的问题。这种方法应该有助于防止他们彻底。

为了提高安全性和后勤性,我们需要允许限制操作仅使用某些HTTP方法处理请求,并将这些限制添加到尽可能多的现有操作中。由处理GET和POST请求的动作导致的许多漏洞,因此允许绕过诸如表单密钥验证之类的安全验证。将动作限制为仅使用某些方法处理请求也可以用作动作类的自文档,并可以提高服务器端进行客户端代码和功能测试的一致性。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.