Необходимо ли переопределять _isAllowed в вашем контроллере администратора?

magento.stackexchange https://magento.stackexchange.com//questions/64907

Вопрос

Метод _isAllowed - это то, где вы, как программист панели администратора, должны размещать свои проверки ACL.Как вы можете видеть, по умолчанию этот метод возвращает true.Это означает, что если вы не определите свой собственный _isAllowed метод, функции вашей панели администратора будут открыты для любого пользователя с Учетная запись панели администратора, и у людей, использующих ваш код, не будет возможности ограничить доступ к вашим функциям.Возможно, это не проблема, но это определенно то, о чем вы должны знать.

Источник: http://alanstorm.com/magento_acl_authentication

Без переопределения _isAllowed (поэтому он всегда возвращает true как унаследованный от родительского класса), я попробовал использовать другую учетную запись в качестве роли, у которой этот ресурс не отмечен в разделе Разрешение -> Роль.

Используя эту учетную запись, я не могу видеть этот ресурс в меню администратора.Также при попытке получить доступ к этому ресурсу путем изменения URL-адреса я был перенаправлен на панель мониторинга.

Так что мне это кажется довольно безопасным, просто интересно, в чем причина (если таковая имеется), по которой нам лучше переопределить это _isAllowed функция?

Это было полезно?

Решение

Видимость в меню администратора определяется не контроллером и его _isAllowed метод, но непосредственно с помощью ACL.Если вы хотите, чтобы меню всегда было видимым и не управлялось ACL, не определяйте его в своих модулях adminhtml.xml.

Перенаправление на панель мониторинга, если вы вводите URL вручную, вероятно, происходит из отсутствующего / неправильного key параметр, который запрещает горячую ссылку на URL-адрес администратора, если включен следующий параметр:

admin/security/use_form_key


Боковое примечание: Начиная с Magento 1.9.2 (и для всех предыдущих версий, в которых применено исправление безопасности SUPEE-6285), следующее больше не соответствует действительности:

Как вы можете видеть, по умолчанию этот метод возвращает true.Это означает, что если вы не определите свой собственный метод _isAllowed, функции вашей панели администратора будут открыты для любого пользователя с учетной записью панели администратора, и люди, использующие ваш код, не смогут ограничить доступ к вашим функциям

Теперь по умолчанию он возвращает значение true только в том случае, если пользователь имеет Полный доступ администратора.Это означает, что если вы не переопределите _isAllowed(), ваше меню недоступно ни для одного ограниченного пользователя.

Идея, лежащая в основе этого изменения, заключается в том, чтобы отказоустойчивый вместо того , чтобы безотказный, т. е.предпочитаю ошибаться в пользу безопасности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top