Політика безпеки

Команда розробників phpMyAdmin робить багато зусиль, щоб зробити phpMyAdmin максимально безпечним. Проте веб-додатки, такі як phpMyAdmin, можуть бути вразливими до ряду атак, і все ще вивчаються нові способи експлуатації.

For every reported vulnerability we issue a phpMyAdmin Security Announcement (PMASA) and it get’s assigned a CVE ID as well. We might group similar vulnerabilities to one PMASA (eg. multiple XSS vulnerabilities can be announced under one PMASA).

Якщо ви вважаєте, що ви виявили вразливість, будь ласка, дивіться Звітність про проблеми безпеки.

Типові вразливості

In this section, we will describe typical vulnerabilities, which can appear in our code base. This list is by no means complete, it is intended to show typical attack surface.

Перехресні між-сайтові сценарії (XSS)

Коли phpMyAdmin покаже частину даних користувача, наприклад, всередині бази даних користувача, всі спеціальні символи html повинні бути вичерпані. Коли цей перехід відсутній зловмисний користувач може заповнити базу даних спеціально розробленим контентом, щоб змусити іншого користувача цієї бази даних виконувати щось. Це може бути, наприклад, частина коду JavaScript, який робив би будь-яку кількість загрозливих речей.

phpMyAdmin намагається уникнути всіх користувацьких даних, перш ніж вони будуть перетворені у html для браузера.

Перехресна між-сайтова підробка запиту (CSRF)

Зловмисник змусить користувача phpMyAdmin натиснути посилання, щоб спровокувати якусь дію в phpMyAdmin. Це посилання може бути надіслане електронною поштою або окремим вебсайтом. Якщо це пройде успішно, нападник зможе виконати певні дії з правами користувачів.

Для пом’якшення цього phpMyAdmin потрібно, щоб токен був надісланий на чутливі запити. Ідея полягає в тому, що зловмисник не представляє дійсний токен, який можна включити в представлене посилання.

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

SQL ін’єкція

Оскільки цілі phpMyAdmin мають полягати у попередній обробці запитів sql, це не наша перша зацікавленість. SQL-ін’єкція є чутливі для нас, хоча це стосується контрольного з’єднання mysql. Цей контрольний зв’язок може мати додаткові привілеї які вхід користувача не створює. Наприклад, доступ Зберігання конфігурації phpMyAdmin.

User data that is included in (administrative) queries should always be run through DatabaseInterface::quoteString().

Атака грубої сили

phpMyAdmin сам по собі ніяким чином не оцінює спроби автентифікації. Це пов’язано з необхідністю працювати в середовищі без громадянства, де неможливо захиститися від такого роду речей.

Щоб пом’якшити це, ви можете використовувати Captcha або використовувати зовнішні інструменти, такі як fail2ban, це більш докладно описано в Забезпечення безпеки установки phpMyAdmin.

Звітність про проблеми безпеки

Якщо ви знайдете проблему безпеки в коді програмування phpMyAdmin, зв’яжіться з нами phpMyAdmin security team заздалегідь до її публікації. Таким чином ми можемо підготувати виправлення та випустити виправлення разом з вашим оголошенням. Вам також буде надано кредит у повідомленні з безпеки. За бажанням можна шифрувати ваш звіт за допомогою PGP ключа ID DA68AB39218AB947 з наступним відбитком пальця:

pub   4096R/DA68AB39218AB947 2016-08-02
      Key fingerprint = 5BAD 38CF B980 50B9 4BD7  FB5B DA68 AB39 218A B947
uid                          phpMyAdmin Security Team <security@phpmyadmin.net>
sub   4096R/5E4176FB497A31F7 2016-08-02

Ключ може бути отриманий з сервера ключів або доступний в phpMyAdmin keyring доступно на нашому сервері завантаження або використовується Keybase.

Якщо у вас є пропозиції щодо вдосконалення phpMyAdmin, щоб зробити його безпечнішим, повідомте про це нашому issue tracker. Існуючі поради щодо вдосконалення можна знайти за допомогою hardening label.