После новости об угоне базы данных с 4dle.ru я задумался, какие же есть варианты угона - ошибки в скрипте, как вариант, но есть и ещё 1 ну до смеха простой способ угнать базу. Навожу пример: выбираете жертву, находите ICQ админа например, выжидаете его в режиме онлайн, заходите левым номерком и начинаете ему вешать лапшу на уши, мол у вас есть инфа что через пару минут его сайт хочеть взломать некий человек, даёте ему рекомендацию сделать резервную копию БД, что он наверняка сделает средствами самого DataLife.
А база то сохраняется в папке backup, в htacces не предусмотрено никой защиты от скачивания.
Формат названия бэкапа:
[имя_БД]_[д-а-та]_[вре-мя].sql
или
[имя_БД]_[д-а-та]_[вре-мя].sql.gz
например:
datalife_2008-06-14_18-10.sql
или
datalife_2008-06-14_18-10.sql.gz
в принципе злоумышленник може узнать название базы, либо пробовать название по умолчанию (например datalife). Если скажем он вам маячил по ICQ то первые цифры ему будут известны и он может делать перебор, либо использовать для этого скрипт подстановки и попытатся закачать файл базы.
Что можно выжать с базы - это уже другой вопрос.
Защита столь же элементарна, всё тот же .htaccess
<Files "*.sql">
Deny from all
</Files>
<Files "*.gz">
Deny from all
</Files>
Hamer как мысли читает:
Лучше делайте беки через PHP my Admin.. не удобней ... но надежней.
Ну а если не прет ... то для надежности лучше сделать вот так :
Открываем engine/inc/dumper.php
Находим
$name = $db . '_' . date("Y-m-d_H-i");
Заменяем на
$pref = time();
$name = $pref . '_' . $db . '_' . date("Y-m-d_H-i-s");
Сейчас мы сделали так
датавсекундах_база_гг-мм-дд_чч_мм_сс
т.е добавили префикс который угадать невозможно ...
и добавили секунды... которые тоже очень тяжело будет угадать ...