Saya telah menemukan bahwa di kelas \Magento\Backend\App\AbstractAction
(leluhur dari setiap tindakan pengontrol admin) ada anggota yang disebut _publicActions
yang digunakan dalam validasi kunci rahasia seperti ini:
if (is_array($this->_publicActions) && in_array($this->getRequest()->getActionName(), $this->_publicActions)) {
return true;
}
Ini berarti, bahwa jika nama tindakan tertentu tercantum dalam _publicActions
Anda dapat mengakses tindakan tanpa kunci rahasia di url.
Ini adalah berkah untuk pengembangan dan debugging, karena Anda bisa melakukannya seperti ROOT/admin/module/controller/action
secara manual, tanpa perlu mengetahui kunci admin rahasia, tetapi yang saya tidak mengerti adalah mengapa saya bisa mengakses halaman edit produk tanpa kunci rahasia.
Panggil saja halaman edit produk seperti ini ROOT/admin/catalog/product/edit/id/{product_id_here}
.
The publicActions
anggota ditimpa untuk pesanan (yang memungkinkan indeks dan melihat), dalam produk (untuk edit) dan di redirect controller untuk pengalihan.
Sekarang pertanyaan saya:
Mengapa hanya beberapa tindakan edit diizinkan tanpa kunci rahasia, dan kapan / apa yang harus saya izinkan dalam modul CRUD khusus saya tanpa kunci rahasia?
sumber
Jika saya harus menebak, saya akan mengatakan itu karena kunci rahasia dapat digunakan sebagai bagian dari perlindungan CSRF dan / atau XSS yang dibangun untuk Magento. Jadi untuk halaman yang tidak mengubah kontennya berdasarkan input pengguna, mungkin tidak perlu memiliki kunci rahasia di sana.
Dengan kata lain, hanya tindakan yang menerima data / input yang diberikan pengguna yang dilindungi dengan kunci rahasia. Tebakan saja.
sumber