РНР 5 в подлиннике

Страница 61 из 554


Гпава 4. Установка Apache

125

пользовать Apache в качестве "настоящего" сервера для обслуживания пользователей из локальной сети и даже Интернета. Наша задача — предостеречь их от этого.

Для того чтобы удобно запускать и останавливать различные серверы, Windows NT/2000 и старше предоставляют так называемую систему управления службами.

Служба (service), или, как ее часто называют на английский манер, "сервис" — это специальная программа, которая автоматически запускается при старте компьютера (еще до подключения терминала пользователя) и работает на нем все время (в фоновом режиме), не выводя ни окон, ни сообщений. Службы также можно запускать и останавливать вручную.

Не каждая программа может выступать в виде службы, для этого она должна быть специальным образом написана. Например, Apache и MySQL разрешают свой запуск в виде службы, а рассмотренная ранее программа subst.exe — нет.

В то же время, существует целый ряд "программ-посредников", позволяющих запускать как службу "из-под себя" любое приложение. Одна из таких программ— AppToService. При желании вы сможете найти ее shareware-версию в любой поисковой системе Интернета.

Вы можете подумать, что запуск Apache в виде службы — это наилучший вариант для того, чтобы открыть доступ извне к Apache. В действительности же, согласившись на такой вид запуска и не имея при этом опыта администрирования Windows, вы, вероятно, совершите огромную ошибку. Так как службы "невидимы", легко может случиться, что неправильно сконфигурированный с точки зрения безопасности Apache будет работать, а вы об этом забудете. Это предоставляет хакерам огромное "поле для творчества".

Безопасность

Если ваш компьютер подключен к локальной сети, возможно, у вас уже возникли смелые фантазии насчет того, как вы установите себе сервер, запустите на нем форум, сделаете домашнюю страничку и т. д., чтобы пользователи локальной сети смогли получить ко всему этому доступ. (Собственно, практика показывает, что подобные действия предпринимают очень многие пользователи Apache для Windows.)

Сейчас мы попытаемся отговорить вас от этой затеи. Если вы собираетесь всерьез заняться хостингом на платформе Win32, то лучше будет использовать не Apache и РНР, a Microsoft IIS (Microsoft Internet Information Server, информационный сервер Интернета Microsoft) и ASP (Active Server Pages, активные серверные страницы), про которые написано множество других книг. По крайней мере, это точно следует сделать, если у вас нет опыта администрирования сетей и серверов под Windows (или этот опыт незначителен).

В чем же состоит опасность установки "рабочего" сервера Apache на платформу Windows? Прежде всего в том, что все кажется обманчиво простым. Поставить Apache может каждый, а вот настроить его так, чтобы это было безопасно и никто

Службы

126

Часть II. Выбор и настройка инструментария

извне не смог проникнуть на компьютер, достаточно тяжело. Для этого требуются недюжинные познания в администраторском деле (которое, вопреки распространенному мнению, в Windows ничуть не проще, а может быть, даже сложнее, чем в Unix).

Главная проблема заключается в том, что сервер запускается с правами администратора, т. е. запускаемые скрипты могут выполнять на машине любые действия. Достаточно одной-единсшвенной оплошности при создании скрипта, и любой внешний пользователь (читайте — хакер) потенциально сможет получить полный контроль над вашей машиной (см. пример в листинге 4.7).

В данной книге мы намеренно не станем описывать, как устанавливать и настраивать сервер, открытый для внешнего доступа. Надеемся, вы прислушаетесь к нашему совету и не станете этого делать — по крайней мере, не изучив предварительно всех особенностей администрирования Windows.

Пример уязвимого скрипта

Чтобы подкрепить слова делом, немного забегая вперед, приведем пример уязвимого скрипта, для которого его уязвимость не так уж и очевидна (см. листинг 4.7).

| Листинг 4.7. Файл /home/localhost/www/forhacker.php

<?php ## Скрипт, имеющий уязвимость в защите.

'die("Уберите эту строчку, если действительно хотите запустить скрипт!"); if (Stype = @$_REQDEST['type1]) {

$fname = "$type.txt";

if (Sf = @fopen($fname, "r")) {

$content = fread($f, filesize($fname));

)

}

?>

<html> <body>

<form name="<?php echo $_ENV [ "SCRIPT_NAME"]?>"> Показать:

<select name="type">

<option value="site">HOBOCTH caUTa</option>

<option value="world">MMpoBbie HOBoc™</option>

<option value="weather">nporH03 noronbi</option> </select><br'/>

<input type=submit уа1ие="Просмотреть новости" /> </form>

<?php if (@$content) echo "<hr/>$content" ?> </body> </html>

Хотя этот скрипт написан на РНР, которого мы пока не касались, то, что он делает, не должно быть для вас загадкой. В двух словах: программа предназначена для показа новостей указанного типа. Новости различных типов хранятся в текстовых файлах




  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006