March 30th, 2009
Стандартная дебиановская сборка апача предполагает, что DocumentRoot лежит в /var/www.
Ну и пусть себе лежит, место ничем не хуже других. Тем более, что если просто зайти на морду сайта, то срабатывает установленный по умолчанию RedirectMatch ^/$ /apache2-default/
Если сайтов становится больше одного, то каждому надо создавать свой подкаталог. Подкаталоги логично создавать там же - в /var/www/.
А дефолтовый сайт часто оставляют. Он ловит все запросы, не адресованные к другим явно определённым сайтам, и радостно говорит It works!. Ну и пусть говорит.
Вот тут-то и прячется несколько неожиданная засада. Остальные сайты лежат аккурат в подкаталогах /var/www. Который есть DocumentRoot от дефолтового сайта.
То есть, через него можно получить доступ к файлам всех остальных сайтов.
И что особенно радостно, по умолчанию для /var/www/ включены Indexes и FollowSymLinks, а никакой перл или PHP как раз не включены. Поэтому есть сильно ненулевая вероятность, что все скрипты будут отдаваться в виде исходников.
Мораль:
1) отключайте ненужную функциональность. даже если она на первый взгляд ничему не мешает. чисто из чувства паранойи.
2) не создавайте DocumentRoot одного сайта в подкаталоге другого. а дефолтовый сайт, если вы решили его оставить, лучше перенести на уровень пониже - например, в /var/www/default
3) блоки <Directory> по возможности располагайте на глобальном уровне, ВНЕ <VirtualHost>. и ограничения доступа приделывайте к Directory, а не к VirtualHost. в качестве дополнительной защиты от непредусмотренного доступа через другой виртуальный хост.
Написано сие по результатам внимательного рассматривания собственного сервера.
А у вас, случайно, не так? :)
Ну и пусть себе лежит, место ничем не хуже других. Тем более, что если просто зайти на морду сайта, то срабатывает установленный по умолчанию RedirectMatch ^/$ /apache2-default/
Если сайтов становится больше одного, то каждому надо создавать свой подкаталог. Подкаталоги логично создавать там же - в /var/www/.
А дефолтовый сайт часто оставляют. Он ловит все запросы, не адресованные к другим явно определённым сайтам, и радостно говорит It works!. Ну и пусть говорит.
Вот тут-то и прячется несколько неожиданная засада. Остальные сайты лежат аккурат в подкаталогах /var/www. Который есть DocumentRoot от дефолтового сайта.
То есть, через него можно получить доступ к файлам всех остальных сайтов.
И что особенно радостно, по умолчанию для /var/www/ включены Indexes и FollowSymLinks, а никакой перл или PHP как раз не включены. Поэтому есть сильно ненулевая вероятность, что все скрипты будут отдаваться в виде исходников.
Мораль:
1) отключайте ненужную функциональность. даже если она на первый взгляд ничему не мешает. чисто из чувства паранойи.
2) не создавайте DocumentRoot одного сайта в подкаталоге другого. а дефолтовый сайт, если вы решили его оставить, лучше перенести на уровень пониже - например, в /var/www/default
3) блоки <Directory> по возможности располагайте на глобальном уровне, ВНЕ <VirtualHost>. и ограничения доступа приделывайте к Directory, а не к VirtualHost. в качестве дополнительной защиты от непредусмотренного доступа через другой виртуальный хост.
Написано сие по результатам внимательного рассматривания собственного сервера.
А у вас, случайно, не так? :)
Tags:
ну раз уж он сегодня случился, то:
не ленитесь в операторах SELECT и INSERT явно перечислить имена полей. Даже если их много.
Это сэкономит вам много времени и нервов.
Когда какому-нибудь доброму человеку придёт в голову ночью, тихонько, никому не говоря, поменять структуру таблицы.
не ленитесь в операторах SELECT и INSERT явно перечислить имена полей. Даже если их много.
Это сэкономит вам много времени и нервов.
Когда какому-нибудь доброму человеку придёт в голову ночью, тихонько, никому не говоря, поменять структуру таблицы.