Tujuan dari antarmuka kata kerja http

9

Di Magento 2.3 ada beberapa antarmuka untuk semua kata kerja http

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

Semuanya kosong dan implementasikan Magento\Framework\App\ActionInterface.
Saya juga menemukan bahwa semuanya dipetakan app/etc/di.xmlke parameter Magento\Framework\App\Request\HttpMethodMapdan banyak pengontrol mengimplementasikan antarmuka ini.
Tapi tidak semua pengendali.
Hanya itu yang bisa saya temukan tentang mereka.
Apa tujuan mereka?

Marius
sumber

Jawaban:

6

Ini untuk meningkatkan cara pengendali menangani validasi mereka, saya percaya. Kami telah memiliki beberapa tambalan SUPEE yang memperbaiki hal-hal seperti validasi kunci formulir yang dilewati dengan permintaan GET atau sejenisnya. Metode ini seharusnya membantu mencegahnya.

Untuk meningkatkan keamanan dan logistik, kita perlu mengizinkan Tindakan terbatas untuk memproses hanya permintaan dengan metode HTTP tertentu dan menambahkan batasan tersebut ke sebanyak mungkin Tindakan yang ada. Ada banyak kerentanan yang disebabkan oleh tindakan memproses permintaan GET dan POST dan dengan demikian memungkinkan melewati validasi keamanan seperti validasi kunci formulir. Juga membatasi tindakan untuk memproses hanya permintaan dengan metode tertentu akan berfungsi sebagai dokumentasi mandiri untuk kelas Action dan meningkatkan konsistensi sisi server untuk kode klien dan tes fungsional.

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

Luke Rodgers
sumber