Я виявив, що в класі \Magento\Backend\App\AbstractAction
(родоначальник кожної дії контролера адміністратора) є член, який називається, _publicActions
який використовується у валідації секретного ключа, як це:
if (is_array($this->_publicActions) && in_array($this->getRequest()->getActionName(), $this->_publicActions)) {
return true;
}
Це означає, що якщо певне ім’я дії вказано у _publicActions
вас, ви можете отримати доступ до дії без секретного ключа в URL-адресі.
Це благо для розробки та налагодження, тому що ви можете це робити як ROOT/admin/module/controller/action
вручну, без необхідності знати секретний ключ адміністратора, але те, що я не розумію, це чому я можу отримати доступ до сторінки редагування продукту без секретного ключа.
Просто зателефонуйте на будь-яку сторінку редагування продукту, як це ROOT/admin/catalog/product/edit/id/{product_id_here}
.
publicActions
Елемент перезаписан для замовлень (які дозволяють індекс і виду), в продуктах (для редагування) і в контролері перенаправлення для перенаправлення.
Тепер моє запитання:
Чому без секретного ключа дозволені лише деякі дії редагування, і коли / що я повинен дозволити в своїх спеціальних модулях CRUD без секретного ключа?