3 золотых правила безопасности кода для разработчика плагинов и тем WordPress

3 золотых правила безопасности для разработчиков плагинов и тем Wordpess

Сегодня я расскажу вам 3 золотых правила безопасности кода для разработчика плагинов и тем WordPress.

Запомните!

Данные должны быть:

1) очищены,

2) экранированы,

3) проверены!

Когда вы включаете вызовы POST/GET/REQUEST/FILE в свой плагин, важно очистить, проверить и экранировать их.

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

  1. Очистка: данные, которые вводятся (либо пользователем, либо автоматически), должны быть очищены (санированы) как можно скорее. Это уменьшает вероятность уязвимостей XSS и атак MITM, с помощью которых публикуемые данные могут скомпрометировать безопасность сайта.
  2. Проверка: все данные должны быть проверены, несмотря ни на что. Даже когда вы проводите очистку, помните, что вы не хотите, чтобы кто-то вставлял «@», когда единственными допустимыми значениями являются числа.
  3. Экранирование: данные, которые выводятся, должны быть экранированы должным образом при выводе функцией echo таким образом, что они не смогут захватить экраны администратора. Есть много функций esc_*(), которые вы можете использовать, чтобы убедиться, что вы не показываете людям неправильные данные.

Чтобы помочь вам в этом, WordPress поставляется с рядом функций очистки и экранирования. Вы можете прочитать о них здесь:

https://developer.wordpress.org/plugins/security/securing-input/

https://developer.wordpress.org/plugins/security/securing-output/

Помните: вы должны использовать наиболее подходящие для контекста (данной ситуации) функции. Если вы проводите очистку электронной почты, используйте sanitize_email(), если вы выводите HTML, используйте esc_html(), и так далее.

Используйте легкую для запоминания мантру:

Раньше очищай!
Позже экранируй!
Всегда проверяй!

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

В конце концов, пользователи приходят из всех слоев общества.

Пример из одного плагина:

Не используйте функции esc_ для очистки

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

Такие функции, как esc_attr(), ничего не очищают и никогда не должны использоваться для этой цели.

Единственным исключением из этого правила являются URL-адреса, для которых могут использоваться esc_url() или esc_url_raw() при сохранении.

Пожалуйста, просмотрите этот документ для помощи в поиске наиболее подходящих функций очистки:

https://developer.wordpress.org/plugins/security/securing-input/

Пример из одного плагина:

В нем неправильно используются функции esc_:

Вот и все, на этом статья завершена. Ставьте оценку, пишите комментарий. Пока!

Щелкните ниже, чтобы поставить оценку!
Всего: 0 В среднем: 0

Написать комментарий

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