Назад | Перейти на главную страницу

Сайт PHP атакован

У меня есть веб-сайт на основе PHP с базой данных MySQL. Несколько дней назад я получил электронное письмо, содержащее всех пользователей в базе данных вместе с их расшифрованными паролями (пароли были закодированы с использованием MD5).

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

я использовал mysql_real_escape_string и htmlentities для дезинфекции пользовательского ввода. Не знаю, что еще сделать, чтобы защитить сайт от нового вторжения. Есть ли у кого-нибудь идеи, как это могло произойти и что я могу сделать, чтобы это предотвратить?

Ваша помощь очень ценится!

  1. Спросите злоумышленника. Они связались с вами (вместо того, чтобы хранить молчание и просто продать информацию), поэтому, по-видимому, они также хотят вам помочь.

  2. Проверьте все ваши SQL-запросы, поиск пропущенного ввода, экранирование и тому подобное. Следите за запросами к таблице пользователей, особенно если вы выполняете SELECT *.

  3. Избегайте SELECT * как можно чаще - просто выберите нужные поля.

  4. htmlentities неправильно экранирует данные для вставки в запросы SQL. Для этого всегда следует использовать mysql_real_escape_string. htmlentities и htmlspecialchars используются для очистки данных перед их отправкой в ​​браузер.

  5. Рассмотрите возможность использования подготовленных операторов, например, с PDO. Это значительно упростит задачу защиты от SQL-инъекций, поскольку данные вообще не нужно экранировать. (вам по-прежнему нужны htmlentities перед выводом в браузер, но XSS - это другая тема).

Попробуйте изменить свои SQL-запросы на Подготовленные заявления.

Также свяжитесь с вашим хостером, чтобы получить от них помощь.

Проверьте наличие последних исправлений для вашей CMS, если вы ее используете.

Используйте MD5 с солью и несколькими раундами хеширования MD5.