Имеет ли смысл использовать одноразовые номера WordPress для не вошедших в систему пользователей по соображениям безопасности?

#wordpress #nonce

Вопрос:

Я читал следующую статью: https://konstantin.blog/2012/nonces-on-the-front-end-is-a-bad-idea / что вызывает некоторые вопросы. В комментариях сказано, что:

Один из автоматизаторов на семинаре VIP Developer сказал мне, что я должен всегда (всегда) использовать одноразовый номер безопасности для запросов ajax, даже для не вошедших в систему пользователей и запросов, которые не приводят к изменению базы данных или файловой системы.

Моя тема использует модальную форму входа / регистрации ajax во внешнем интерфейсе, где проверка одноразового номера реализована для процесса регистрации, но не для входа в систему. Действительно ли это имеет смысл?

Даже wordpress не использует одноразовые номера для входа / регистрации в wp-login.php . С другой стороны, Woocommerce использует одноразовые номера в формах входа / регистрации. Это действительно сбивает с толку — какая лучшая практика — wordpress или woocommerce? С точки зрения безопасности, имеет ли смысл вообще использовать одноразовые номера для не вошедших в систему пользователей в процессе входа / регистрации?

Ответ №1:

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

Простейшая форма этого — случайный вредоносный сайт, создающий форму, которая публикуется на странице выхода из системы вашего сайта. Если пользователь отправляет эту форму (или вредоносный сайт использует JS для этого), он выходит из системы. Вредно? Возможно, нет, самое неприятное.

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

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

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

Комментарии:

1. К сожалению, это не отвечает на мой вопрос. Конечно, одноразовые номера в целом имеют смысл. Я хочу знать, имеет ли смысл использовать их для не вошедших в систему пользователей. Особенно в формах входа / регистрации: следует ли их использовать, как это делается в woocommerce или нет, как это делает wordpress в wp-login.php ?

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

3. Спасибо за ответ. Конечно, я не хочу, чтобы другие сайты могли публиковать сообщения в моей форме входа / регистрации. Я не понимаю, почему wordpress не использует одноразовые номера в форме входа / регистрации и комментариев. Значит, их не волнует, что другие сайты могут публиковать эти формы?

4. WordPress на самом деле не является примером того, как все делать правильно.