Admin
|
|
Дата: Воскресенье, 06.11.11, 20:10 | Сообщение №1 |
|
| |
|
Мэр
Сообщений: 772
Пользователь №1
ICQ номер: 8365511
Регистрация: 16.06.08
Репутация:
« 154 »
Статус:
|
DLE - защита сайта от взлома. Основные приёмы
1 вариант. Злоумышленник завладел аккаунтом администратора и получил доступ к панели управления DataLife Engine. Теперь он может: редактировать комментарии/новости, редактировать конфигурационный файл движка, редактировать .TPL и .CSS файлы шаблона.
Решение: переименуем /admin.php, к примеру, в 9tEazy4SXN.php; присвоим .TPL и .CSS файлам шаблона и конфигурационному файлу /engine/data/config.php (CHMOD) 644, это запретит их редактирование как через панель администратора, так и через файловый менеджер.
Примечание: после того, как Вы переименовали admin.php, ни в коем случае не вписываем новое имя файла в настройках движка, иначе оно будет отображаться в панели пользователя.
2 вариант. Злоумышленнику удается залить в папку {THEME} либо в /uploads/ шелл, таким образом, он получает полный контроль над файлами Вашего движка, над Вашей базой данных и, в некоторых случаях, над всем Вашим сервером.
Решение (только для DLE ниже 9.x): поместим в папки /templates/ и /uploads/ файл .htaccess, со следующим содержимым:
Code <FilesMatch "\.([Pp][Hh][Pp]|[Cc][Gg][Ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll])\.?"> Order allow,deny Deny from all </FilesMatch>
этим действием, мы запретили запуск сторонних скриптов, расположенных в вышеуказанных папках.
3 вариант. Злоумышленник знает название файла для создания резервных копий БД - cron.php, это дает ему возможность "убить" на неопределенное время Вашу БД, тем самым остановить работу сайта. P.S. особенно актуально для сайтов с большим размером базы данных.
Решение: переименуем файл cron.php
4 вариант. Загрузка файлов через /engine/images.php разрешена только группе "Модераторы", злоумышленник завладел аккаунтом одного из модераторов и пытается загрузить файл, что для Вас крайне не желательно.
Решение: в файле /engine/images.php, после
помещаем следующий код:
Code $q_ = array( "login" => "pass" );
if (!isset($_SERVER['PHP_AUTH_USER']) || md5(md5($_SERVER['PHP_AUTH_PW'])) !== $q_[ $_SERVER['PHP_AUTH_USER'] ] ) {
header('WWW-Authenticate: Basic realm="Access forbidden!"'); header('HTTP/1.0 401 Unauthorized'); exit("Access forbidden!");
}
где login и pass - логин и пароль для доступа, зашифрованные в md5. Эти данные мы можем выдать каждому из модераторов.
Вот основные базовые методы защиты сайта на DLE от взлома.
Пишем в теме ещё хорошие и эффективные методы защиты от взлома сайтов на этом движке.
|
|
|
|