Проверка возможностей пользователя

Как упоминалось в введении, вам следует предотвращать Cross-Site Scripting (XSS). Для этого вы должны проверить, что пользователь авторизован и возможности его роли подходящие, прежде чем они могут выполнять какие-либо действия, которые изменяют базу данных.

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

К счастью, WordPress предлагает две проверенных стратегии для проверки, есть ли у пользователя разрешение делать то, что он пытается делать: возможности пользователя и одноразовые числа.

Возможности пользователя

Каждому пользователю авторизованному в WordPress автоматически присваиваются конкретные возможности в зависимости от их роли. Например, автор может публиковать записи, а администратор может управлять настройками. Логично, что вы хотите чтобы автор создавал контент и администратор управлял сайтом. В зависимости от возможностей, назначенных какой-то роли, меню, функциональность и другие аспекты WordPress могут быть добавлены или удалены.

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

Теперь пример того, как использовать функцию для обработки любых запросов на удаление записи:

Код выше позволяет любому посетителю сайта, нажать на ссылку «Удалить» и удалить пост. Однако, вы хотите чтобы только редакторы и выше имели возможность нажимать на ссылку «Удалить». Если любой сможет это сделать, то вы в конечном итоге останетесь без контента.

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

При создании ссылки, она будет выглядеть примерно так:

При выполнении операции удаления, это будет выглядеть примерно так:

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

Так, теперь ваш плагин в безопасности и защищен, правильно? Не так быстро. Вы должны понять, как создать одноразовые числа…

Навигация по разделам:

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *