Недостаточная защищённость данных на shared'е под cPanel'ю
Эта тема возникла у меня после чтения темы "Об одном способе взлома shared-вебсервера" (см. http://forum.hostobzor.ru/index.php?showtopic=4394 ) и ссылки на тему "Shared Hosting Security" в ПХП Клубе (см. http://phpclub.ru/talk/showthread.php?threadid=47772 ). А главное, после спора с моим приятелем. Спор возник как раз на тему защищённости данных. В частности лежащих в запароленных директориях. Я всегда считал - они то как раз хорошо защищены и не доступны никому! Когда мой приятель сказал мне что это не так, я поспорил с ним и проспорил таки! Он мне подсказал как довольно легко добраться к данным в запароленной директории. Но я не буду здесь его приводить чтобы не плодить хакерскую субкультуру. Все действительно знающие админы и так наверное знают его. Подскажу лишь - это с помощью крон-таблицы.
Тем кто скажет - при чём тут cPanel ? - отвечу. Именно cPanel управляет на shared'е и Cron'ом и назначением прав на директории в пользовательском аккаунте! Кто же как не она виновата в несуразных сочетаниях прав на директории и возможности доступа к директориям пользователя с помощью юникс команд?
И дискуссия в указаной теме в ПХП Клубе тоже говорит о том, что можно получить доступ к данным в чужом аккаунте на shared'е (см. http://phpclub.ru/talk/showthread.php?post...1646#post321646 ). Выходит прав и мой приятель, и господин ClayRabbit в теме на ПХП Клубе, а также выходит что прав господин Andrew Mikitenko в указанной здешней теме.
Вот ещё любопытные факты говорящие о том же. Когда cPanel создает субдомен, она помещает директорию этого субдомена в директорию public_html, не так как всегда бывало на хостингах не использующих cPanel, где субдомены создавались в директории homedir. При этом оказывается, что к субдомену есть доступ не только как subdomain.domain.ru но и как domain.ru/subdomain/ (!!!)
Это уже совсем никуда не годится! Хотя бы потому, что если в php-скриптах для субдомена используется стандартная директива определения базового пути $_SERVER['DOCUMENT_ROOT'] для подстановки его в инклуды или для иных целей, то она выдаст ложные данные при вызове страницы не как принадлежащей созданному субдомену, а вызаванной по ошибке или умышленно как подкаталог основного домена. Что означает прекращение обработки php-страницы с выдачей сообщения с путями прямо на дисплей вошедшего на страничку, вызванную таким способом. Что само по себе не есть хорошо и вполне может использоваться хакерами для очень простого способа узнать полный путь к директориям любого сайта который имеет субдомены на shared'е под cPanel'ю!
Мой приятель подсказал мне, что вроде единственный способ как-то предотвратить этот баг состоит в том, чтобы на такую директорию субдомена вручную поставить права 750 вместо 755 которые ставит автоматом cPanel.
Интересно что если взять и поставить права 750 на любую поддиректорию домена, то в броузере доступ к ней уже не получить - выдает ошибку доступа. Поэтому никак не получится хотя бы этим способом дополнительно защитить от взлома мои данные в запароленной директории, что я попробовал сделать когда узнал о недостаточной защите стандартной директивой cPanel паролирования директорий.
Короче, в парадигме создания аккаунтов в cPanel с правами похоже обстоит плохо и она создает директории которые плохо защищаны.
Выходит прав господин Andrew Mikitenko и нужно с shared'а делать ноги и подаваться на VDS если тебя заботит приватность!