Анти CSRF в WP

В поддержку по плагину Inactive User Deleter недавно написали, что Wordfence считает мой плагин уязвимым к CSRF.

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

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

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

Но теоретически, действительно, если перехвачены сессионные данные пользователя, а он при этом админ, то гипотетически, если правильно сформировать запрос, то, возможно, получится выполнить действия, которое мой плагин осуществляет при отправке данных через свои формы. А одним из действий как раз является удаление пользователей, при этом массовое удаление.

WP предлагает использование классического приёма защиты, называется NONCE. Что расшифровывается как ‘number used once’.

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

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

Если NONCE не прошел проверку — дальнейший вывод страницы прерывается с 403 кодом и сообщением об ошибке, предотвращая тем самым какие либо действия.

Добавил wp_nonce_field во все формы, чтобы юзер был доволен. :)

Мало букафф? Читайте есчо !

Как активировать блочный редактор для пользовательского типа контента в WP

Июнь 6, 2021 г.

Wordpress v5.x вводит новую реализацию подхода в редактировании контента - а именно блочный редактор с кодовым именем Gutenberg. Проблема в том, как активировать данный функционал для кастомного типа публикации. Документацию модульного редактора ...

Читать

Как добавить в contact form 7 плейсхолдер элемента

Апрель 1, 2023 г.

Неудобно, что прямо в редакторе нельзя задать нужные атрибуты, приходится искать либо в коде, чтобы подсмотреть как это реализовано, или на форумах. Нужно было создать элементы формы с атрибутом placeholder. Оказалось, что wpcf7 понимает следующую ...

Читать

References, v1.2

Август 18, 2019 г.

Небольшое обновление для API WP плагина References. Я добавил обратную функцию к REFShraAPI::get - которую назвал REFShraAPI::find. Новая статическая функция позволяет искать публикации, к которым прикреплена указанная статья. [crayon-68c64d52eed77531195959/] ...

Читать

Подключаем LESS препроцессор к вашей теме в Wordpress

Июнь 2, 2019 г.

Вкусив однажды всех радостей от использования препроцессора, сложно себя заставить работать с нативным CSS. Посмотрим как подключить LESS к вашей теме на WP. Т.к. уже есть готовые решения, то воспользуемся одним из них. Плагин WP-LESS сделает большую ...

Читать
 

Комментарии к «Анти CSRF в WP»

Понравилась статья? Есть вопросы? - пишите в комментариях.



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