В любом сайте и веб-приложении самым важным является база данных - место, где хранятся все данные. Чтобы все данные были в безопасности и никто не получил к ним доступ, нужно соблюдать некоторые простые правила.
Хэширование паролей
Не храните пароли пользователей вашего сайта в открытом виде. Все пароли нужно хэшировать. Даже если база данных будет взломана, то хэширование не даст злоумышленникам завладеть паролями в их чистом виде. Ведь есть такие пользователи, которые используют один и тот же пароль/логи/email на всех сайтах, которыми пользуются. В случае утечки пароля на одном сайте, автоматически ставят под угрозу все свои аккаунты на других сайта.
Надежный логин и пароль базы данных
Логин и пароль к базе данных должен быть надежным. Нельзя допускать, чтобы в качестве логина использовался дефолтный admin, а лучше переименовать его во что-нибудь другое.
Пользователи с разными привелегиями
Для каждой базы данных нужно создавать отдельного владельца и несколько пользователей с разным набором прав к управлению хранящимися данными. При этом доступы к другим базам данных на этом же сервере, должны отличаться и не должно быть так, что они одинаковы и подходят к соседней базе данных.
Отключение удаленного доступа к базе данных
Необходимо отключить удаленный доступ к базе данных, если приложение и база данных установлены на одном сервере, и работать через сокеты.
Резервное копирование
Если все-таки произошел взлом и кто-то удалил все данных из базы, то нужно сделать восстановление. Для этого на сервере должно производиться автоматическое резервное копирование базы даных, либо производиться вами вручную, хотя бы раз в месяц. Хорошо, когда бекапы делаются и хранятся на отдельном сервере.
В случае автоматических резервных копий, нужно быть уверенным, что при взломе, на момент создания копии базы данных, в нее не попало никакого вредоносного кода, который может быть повторно использован злоумышленником.
PDO и placeholder
Необходимо писать запросы применяя PDO и подстановку данных через placeholder. Это поможет уберечь от SQL-инъекций.
Качественный код
Нужно стараться писать как можно более качественный код, а не писать говнокод, использовать инструменты тестирования, инструменты анализа уязвимостей.
Слишком широкии привелегии на учетные записи тоже часто могут быть причиной взлома. И не следует светить рута.
Через SQL-инъекцию взламывают, через js и html инъекции суют в код, подбор паролей, либо какие-то еще атаки. Способов очень много.
Взломать базу mysql могут через sql-иньекцию, либо часто самописные cms на php взламывают. Главное все входные параметры фильтровать и валидация обязательно должна быть.
Технологий и способов взлома базы данных уйма. А по защите все банально просто - нужно читать офф маны по настройке. Во всех современных доках есть разделы где объясняется как улучшить безопасность бд.