Безопасность

Ваш код работает! Но безопасен ли он? Есть ли вероятность что через ваш плагин, злоумышленник может получить доступ к сайту? Имейте в виду, что ваш код может быть запущен на сотнях, может быть, даже миллионах сайтов, поэтому безопасность имеет первостепенное значение.

Особое внимание безопасности нужно уделять при:

  • создании страницы настроек плагина.
  • создании шорткодов.
  • сохранение данных в БД.
  • выводе данных на экран.

Выделю три модели, которым можно следовать, чтобы обеспечить безопасность кода.

1. Безопасный ввод

Каждый раз, когда PHP код получает какие-то данные:

  • пользователь отправляет данные в WordPress через форму.
  • данные импортируются из внутреннего или внешнего источника.
  • обрабатывается AJAX запрос.
  • данные поступают в WordPress через всевозможные API.

Очень важно убедиться, что это безопасно. Cделать это можно путем проверки и очистки данных.

2. Очистка вывода

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

В WordPress для такой очистки предусмотрен ряд функций все они начинаются с префикса esc_, например esc_html().

3. Проверка прав доступа

Для предотвращения несанкционированных изменений настроек плагина или совершения действий, которые пользователь не имеет права выполнять, нужно проверять права доступа.

WordPress предлагает два пути:

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

Полезные ссылки по теме безопасности WordPress