Saya melihat baris kode ini di dalam formulir login.
<?php echo $block->getBlockHtml('formkey'); ?>
- Apa gunanya?
- Apakah lebih aman?
- Apakah itu suatu keharusan untuk posting bentuk?
Kunci formulir di Magento adalah cara untuk mencegah terhadap Pemalsuan Permintaan Situs Lintas , singkatnya, itu membuat Anda aman dari orang-orang yang mencoba memposting ke formulir Anda (seperti menambahkan ke keranjang) dari situs lain yang menyamar sebagai Anda.
Ini bisa berbahaya karena seseorang secara teoritis bisa membuat formulir sendiri dan memposting ke tindakan pengendali penangan formulir di toko Anda. Perlindungan CSRF pada dasarnya mengabaikan posting yang gagal memeriksa parameter form_key yang disertakan dengan postingan form.
<?php echo $this->getBlockHtml('formkey')?>
Ia memberitahu Magento untuk mencari blok tata letak dengan nama "formkey" dan menampilkannya. Di Magento ini biasanya beberapa file yang memiliki ini di dalamnya:
<div><input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" /></div>
Ini menginstruksikan Magento untuk mengeluarkan dan menyimpan kunci formulir unik untuk sesi pengguna. Semua tindakan pengontrol Magento yang dilindungi CSRF akan memverifikasi ini sebelum melakukan sesuatu yang bernilai.
\Magento\Framework\Data\Form\FormKey\Validator
.Anda dapat menambahkan formkey dengan kode ini:
Jika Anda ingin menambahkan kunci formulir dalam file phtml, gunakan langsung
Menggunakan Injeksi Ketergantungan pada konstruktor kelas Anda:
Catatan: Jangan gunakan manajer objek secara langsung dalam file phtml
sumber
ObjectManager
penggunaan di frontend ini bukan praktik yang baik.Tidak perlu menginisialisasi objek manager dan semuanya, Anda dapat menggunakan.
Frontend dapat Anda gunakan:
Semoga ini membantu!
Terima kasih
sumber