Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: защита от хака базы данных
 
 автор: kaoz   (15.05.2006 в 13:52)   письмо автору
 
 

Допустип есть абстрактная CMS, распространяемая по какой-либо open-source лицензии. И исходный код в этом случае (вместе со структурой папок) доступен любому человеку, в том числе и злоумышленнику.

У этой CMS есть функция конекта к базе данных, а аутентификационную информацию эта функция берет из файла "db_config.php"

В этом случае злоумышленник может получить полный доступ к базе данных своей жертвы, следующим образом:
Записывает исходник функции коннекта к базе данных в отдельный файл на свой сервак, а аутентификационную информацию подключает через

include 'http://userCMS.ru/db_config.php';

и воспользовавшишь такой функцией у него появляется возможность отправлять БД жертвы любые запросы.
Даже в случае если у жертвы в файле db_config.php стоит

if(defined('CMS'))
  {
    // аутентификационные данные для БД
  }
else die('Защита от хакеров');

он просто в свое скрипте перед использованием данного файла пишет DEFINE('CMS', true); и дальше делает что угодно.
Таким же способом, зная архитектуру CMS он может получать доступ к любым файлам сервера.

Вопрос: как обеспечить безопасность всем файлам только средствами php.
(варианты типа ложить файлы вне root дирректории или использовать .htaccess не подойдут)

   
 
 автор: Loki   (15.05.2006 в 14:02)   письмо автору
 
   для: kaoz   (15.05.2006 в 13:52)
 

Прежде чем столько написать, вы попробовали все это проделать?
Попробуйте. Сдается мне, ваш "вопросик" тут же отпадет.

   
 
 автор: kaoz   (15.05.2006 в 15:05)   письмо автору
 
   для: Loki   (15.05.2006 в 14:02)
 

к сожалению работает :(

может это настройки сервака такие?

   
 
 автор: cheops   (15.05.2006 в 15:08)   письмо автору
 
   для: kaoz   (15.05.2006 в 15:05)
 

Что за CMS используется?

   
 
 автор: Loki   (15.05.2006 в 15:40)   письмо автору
 
   для: kaoz   (15.05.2006 в 15:05)
 

НЕ верю!
Таким образом, он получит только результаты работы скрипта, а не доступ к БД.

   
 
 автор: cheops   (15.05.2006 в 15:07)   письмо автору
 
   для: kaoz   (15.05.2006 в 13:52)
 

Если CMS позволяет загружать сторонние PHP-файлы - ей пользоваться не нужно, так как злоумышленику не понадобиться даже ничего писать - имеются стандартные PHPShell, которые позволят за пять минут не оставить камня на камне от сайта. Он просто помотрит параметры внутри файла db_config.php - введёт их в PHPShell и файлы сайта ему больше будут не нужены, какой бы защитой они не обладали - дальше он обойдётся своими силами.
При работе с загружаемыми файлами - основная задача ни в коем случае не допустить загрузки исполняемых скриптов на сайт.
Обычно чтобы предотвратить такой поворт, в директорию с файлами помещают .htaccess следующего содержания
<FilesMatch ~"\.(php|phtml|php3|pl|html|htm|js)$">
order allow,deny
deny from all
</Files>

   
 
 автор: kaoz   (15.05.2006 в 16:42)   письмо автору
 
   для: cheops   (15.05.2006 в 15:07)
 

с этим дело уже разобрались, это все неправильные настройки MS IIS.

спасибо за дискуссию

2Loki: именно как я описал так и работало =)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования