В коде моих плагинов при активации / деактивации / удалении я использую для выполнения check_admin_referer () вот так.
if ( ! current_user_can( 'activate_plugins' ) )
wp_die(__("Insufficient privilege for the required operation"));
$plugin = isset( $_REQUEST['plugin'] ) ? $_REQUEST['plugin'] : '';
check_admin_referer( "deactivate-plugin_{$plugin}" );
На самом деле, гуглить вокруг хороших привычек программирования WordPress в области безопасности, это, кажется, хорошо известная практика.
Тем не менее, у меня проблемы с использованием фреймворка TGM-Plugin-Activation.
Эта структура используется для обработки ситуаций, в которых определенный плагин или тема нуждаются, как зависимость, в других плагинах. Эта структура позволяет мне обрабатывать случай, настраивая страницу, где конечный пользователь может установить / обновить необходимые зависимости.
Тем не менее, эта страница имеет свой собственный (причудливый?) Механизм одноразовой проверки, который полностью завершает мою проверку check_admin_referer ().
По словам разработчика TGMPA, check_admin_referer () после активации / деактивации является избыточным, поскольку выполняется внутри самого WordPress.
Короче говоря, мой вопрос: действительно ли check_admin_referer () является мерой безопасности? Это действительно нужно? Или это может быть безопасно проигнорировано, как предлагает разработчик TGMPA?
Заранее спасибо за помощь.
Задача ещё не решена.
Других решений пока нет …