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


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

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

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

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

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

Author: Fabian Schmengler, 2015-04-27

1 answers

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

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

admin/security/use_form_key


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

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

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

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

 5
Author: Fabian Schmengler, 2018-03-08 07:41:55