Справка веб-мастера     Справочник web-мастера и программиста
  PHP       Интернет       Беб-дизайн       Безопасность       Javascript     Информеры     Game      
          Игра шарики



Проверка политики безопасности серверов Peterhost.ru

Для проверки уровня безопасности сервера Peterhost.ru, предоставляющего услуги виртуального хостинга, на котором у меня уже был аккаунт с именем myakka, я создал новый тестовый аккаунт с именем test.

Провел анализ:

1) Зашел по SSH в тестовый аккаунт

набрал команду cd /home/myakka/

получил ответ: Permission denied - доступ запрещен

2) В открытой сессии SSH на тестовом аккаунте test попытка просмотреть любой файл с моего аккаунта myakka также закончилась неудачей.

mcedit /home/myakka/www/site1/public_html/index.html

Появляется окно ответа: Cannot open file for reading: /home/myakka/www/site1/public_html/index.html [Dismiss]

Права на этот файл: 644, то есть просматривать этот файл можно всем пользователям сервера, группе и владельцу файла (лицу создавшему файл), соответственно: Owner, Group, Other.

3) Попытка получить доступ к файлам тестового аккаунта test из php скрипта, выполняющегося с моего аккаунта myakka также закончилась неудачей: Ниже приводится блок кода на PHP:


<?php

$ia='/home/test/www/site1/public_html/index.html';

readfile ( $ia );

?>

4) Попытка получить доступ к файлам тестового аккаунта test из php скрипта, выполняющегося с моего аккаунта myakka с помощью функций file, fopen, unlink также закончилась неудачей.

5) Попытка подключить (используя include) секретный конфигурационный файл с паролями для доступа к базе данных MySQL (находящийся на аккаунте myakka) из тестового аккаунта test, закончилась неудачей.

Фрагмент кода на php, выполненный в файле на тестовом аккаунте:


include("/home/myakka/www/site1/public_html/secret/config.php");

$result = mysql_query("select password from secret_table where user='root'", $database);
   
list($password) = mysql_fetch_row($result);

echo "password=$password";

В лог файле тестового аккаунта появилась запись об ошибке: [Sun May 9 11:38:35 2010] [error] PHP Warning: include(/home/myakka/www/site1/public_html/secret/config.php) [<a href='function.include'>function.include</a>]: failed to open stream: Permission denied in /home/test/www/site1/public_html/look-secret-file.php on line 19

Из сделанного анализа пришли к выводам:

1) Политика безопасность серверов peterhost.ru отвечает высоким требованиям, пользователь виртуального хостинга, работающий на вашем сервере, не сможет прочитать содержимое ваших файлов, не сможет изменять и удалять ваши файлы. Таким образом, конфиденциальность и целостность вашей информации гарантирована.

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

Хотя результаты выполнения функции phpinfo показывают, что режим безопасности php отключен (safe_mode=off), то есть другие пользователи виртуального хостинга могут использовать функции file, fopen, unlink для доступа к чужим файлам.

Если станут известны, по каким-то причинам, логин и пароль для доступа к вашей базе MySQL, то без труда посторонний пользователь сможет подключиться к вашей базе данных из любого аккаунта сети Peterhost и выполнить поизвольные действия с таблицами базы данных. Поэтому секретные файлы с конфигурационными данными и паролями желательно хранить все папки Public_html, в месте, недоступном для веб-сервера. Хотя исходные тесты файлов php не показываются пользователю Интернета, но могут создаться ситуации, при которых возможна демонстрация исходников.

Фрагмент кода на php, выполненный без ошибок в файле на тестовом аккаунте:


$database=mysql_connect ("mysql.myakka.z8.ru", "dbu_myakka_1", "my_password");

mysql_select_db ("db_myakka_1");

$result = mysql_query("select familia, zvanie from fsb_server where id='general' ", $database);
   
list($familia, $zvanie) = mysql_fetch_row($result);

echo "familia=$familia, zvanie=$zvanie";













  Copyright © King-dom.ru, 2008-2013       Разработка сайта SoftHolm.com