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おり、多くのコントローラーがこれらのインターフェースを実装していることもわかりました。
しかし、すべてのコントローラではありません。
それについて私が見つけることができたすべてです。
彼らの目的は何ですか?

回答:


6

コントローラーが検証を処理する方法を改善することです。GETリクエストなどによってフォームキーの検証がバイパスされるなどの問題を修正するかなりの数のSUPEEパッチがありました。この方法は、それらを完全に防ぐのに役立ちます。

セキュリティとロジスティクスを改善するには、アクションを特定のHTTPメソッドでのリクエストのみを処理するように制限し、それらの制限をできるだけ多くの既存のアクションに追加する必要があります。アクションがGETリクエストとPOSTリクエストの両方を処理することによって引き起こされる多くの脆弱性があり、フォームキー検証のようなセキュリティ検証をバイパスすることができます。また、特定のメソッドを使用したリクエストのみを処理するようにアクションを制限すると、アクションクラスの自己文書化として機能し、クライアントコードと機能テストのサーバー側の一貫性が向上します。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.