Есть ли какие-либо рекомендации по безопасности для Laravel? База данных взломана - PullRequest
0 голосов
/ 11 ноября 2019

Моя база данных Laravel была взломана во второй раз. хакер удалил все таблицы и оставил таблицу с угрозами удалить ее, если я не отправил биткойны. Это не проблема, так как у меня есть резервная копия, но что я могу сделать, чтобы предотвратить ее?

Это для Laravel 6. Впервые я включил режим отладки в файле .env, так что я подумал, что это может бытьпроблема. после выключения отладки меня все равно взломали я что-то упустил?

Ответы [ 3 ]

0 голосов
/ 11 ноября 2019

Было бы здорово, если бы вы знали, как хакер попал в базу данных. Может быть, у вас есть старая версия базы данных? Возможно, у вас есть пароль, который легко взломать, и вы открыли для себя свою базу данных в Интернете. Laravel по умолчанию блокирует инъекцию SQL, поэтому этого не может быть.

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

Публикуете ли вы свой код на GitHub? Возможно, хакер получил пароль из вашего хранилища (это возможно только в том случае, если это общедоступно). Вы должны быть уверены, что НИКОГДА не публикуете свой файл .env в Интернете и храните только локальные копии.

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

0 голосов
/ 11 ноября 2019

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

  1. Старая версия фреймворка (но вы используете v6, которая обновлена)
  2. Оболочка / вирус уже в коде (проверьте, существует ли оболочка php& сканируйте антивирусом)
  3. У вас есть общедоступное git-репо, куда злоумышленник поместил свою вредоносную программу
  4. У вас есть жестко закодированные учетные данные, которые просочились через git-репо или файлы JS.
  5. У вас есть неограниченная опция загрузки файлов в вашем коде, которая позволяет хакеру загружать оболочку.
  6. ваш сервер базы данных открыт для всех, что дает доступ любому.
  7. Если вы используете более старую версию jenkins или другую автоматизациюинструмент, который использует эксплойт.
  8. SQL-инъекция, (проверка журналов)

Спасибо,
Jaikey

0 голосов
/ 11 ноября 2019

Hello Mohamed Elmoniry,

Я бы проверил конфигурацию базы данных вашего сервера на наличие следующих настроек безопасности. Я имею в виду, что это довольно просто и обычно выполняется автоматически, если вы не используете хостинг самостоятельно и не используете сервис, такой как Forge или Digital Ocean. , но здесь вы идете:


  1. Обновление плагина пароля
  2. Смена пароля root
  3. Удаление анонимных пользователей
  4. Disallow remote rootlogin
  5. Удалить тестовую базу данных

Если вы новичок в этом и используете MYSQL на своем сервере, вы можете запустить следующую команду / скрипт, которая автоматически проведет вас черезэтот процесс


sudo mysql_secure_installation

Дополнительно:

Если вы используете веб-сервер, я бы также включил SSH и деактивировал пароль для входа.

Если вы используете брандмауэр, я бы проверил, что UTM (Унифицированное управление угрозами) разрешает только необходимые порты для вашего приложения, если это аппаратный брандмауэр. (то же самое относится и к программному брандмауэру)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...