div.main {margin-left: 20pt; margin-right: 20pt}
Хакер или
администратор?
Знаете, когда каждый день
встречаешься с людьми на работе, трудно заподозрить их в черных мыслях.
Репортажи о взломах сетей, краже информации из компьютеров все еще кажутся
нереальными. Рассказы о взломе компьютеров Пентагона слушаешь с интересом, но
они с трудом проецируются на нашу действительность.
- Вот в Америке - это да! А у нас и
брать-то нечего.
- А если есть, то кому? Они же не
умеют!
Это неправда. По статистике больше
всего компьютерных преступлений совершается сотрудниками (или бывшими
сотрудниками) фирмы. В любой организации есть секретная информация, и все
большая ее часть оказывается доверенной компьютеру. Мотивы могут быть разные:
деньги, месть, желание поиграть, любопытство, неудовлетворенные амбиции. Это
намного проще, чем забраться в чужой дом и стащить столовое серебро. Несколько
нажатий на клавиши и все: многолетняя работа потеряна навсегда. Нужно быть
готовым к тому, что таким человеком может оказаться любой. Как в детективе
Агаты Кристи. Нормы морали ныне слабо сдерживают людей от многочисленных
соблазнов. Интернет дает любому неподготовленному человеку возможность
взломать сложную компьютерную систему. Достаточно запустить поисковую машину,
и каждый сможет найти инструкции для начинающих хакеров и боевой арсенал для
нападения. Это намного проще, чем разыскать отмычку!
Ваша задача как администратора сети
(шерифа городка в прериях) состоит в том, чтобы изобличить преступника или,
лучше, предотвратить преступление. Нападение через Интернет заслуживает
отдельного разговора, поэтому я хотел бы обратить внимание на локальную сеть,
которая имеется практически в любой организации. Это может оказаться сложным,
но всегда интересно состязаться с умным противником. Взять хотя бы Кевина
Митника, одного из самых известных хакеров современности. Что заставило его
проникнуть в компьютер ведущего специалиста по компьютерной безопасности
Цутому Шимомуры? Мания величия или же иные причины - неважно, но такие люди
очень опасны, потому что они думают о взломе вашей сети постоянно. А сколько
раз в день вы думаете о защите? Противостояние меча и щита, брони и снаряда
будет продолжаться, пока существует мир. Победителями в этом сражении
становятся только временно. Показательно то, что меч изобрели раньше, чем щит.
Значит, ваш противник всегда на один шаг впереди.
Какую же стратегию защиты сети
выбрать?
Пассивный вариант предполагает
включение всех защитных механизмов, имеющихся в наличии, внимательное
наблюдение за всеми историями взлома, регулярное залатывание дыр. Это вполне
традиционное поведение, и от хакеров оно спасти не может. В самом деле, разве
не обнаруживают то одну дыру, то другую в программах Microsoft, Netscape и
других? Ошибки неизбежны, и считать систему безопасной можно, лишь ничего не
зная о ней. Это напоминает спокойствие человека, сидящего на бомбе с зажженным
фитилем, не зная об этом. Его нельзя считать смелым: он не знает. Хотите
примеров? - Пожалуйста!
Первым оборонительным редутом обычно
считается пароль в BIOS. Если злоумышленник не имеет доступа к работающему
компьютеру, то, по идее, единственным выходом для него будет разборка корпуса
и снятие пароля. Это затрудняет действия хакера и заставляет его оставить
следы взлома. И что вы скажете: для BIOS Award 4.22-4.50 имеются универсальные
пароли! А ведь Award BIOS в настоящее время очень распространена. Я был в
шоке, когда набрал на своем домашнем компьютере "AWARD_SW" и система меня
впустила. Как вам это нравится? У меня было такое чувство, что я остался
голым! Пусть в версиях выше 4.50 это исправлено, но уже появилась утилита
unaward3, которая читает и пароли новой версии. Нужно лишь заставить
пользователя запустить маленькую программу (под видом законной), и пароль
перекочует в чужой карман!
Novell NetWare (так же как и Windows
NT) можно считать относительно защищенной ОС. Если соблюсти все рекомендации
по безопасности, можно заставить хакера попотеть. Тем не менее, расслабляться
не следует, так как известно достаточно способов обхода этой защиты. 1 Если
злоумышленник получает непосредственно доступ к файл-серверу, пусть и
выключенному, через 15 минут он получит на нем права администратора. Кому
интересно, может прочитать "The Unofficial Netware Hack FAQ" (http://www.tsu.tomsk.%20sii/~eugene/) и убедиться в
этом. Если пользователь получает доступ к машине администратора, он может
установить небольшой перехватчик кодов клавиатуры типа GETIT. Так как в
выходном файле будет куча мусора, можно взять NWL, ориентированную на запись
нажатий после запуска login. Заметит администратор или нет? 1 Если физического
допуска на машину администратора нет, можно положиться наболее сложную
процедуру анализа пакетов. 1 Но гораздо проще взять CHKNULL Это
отличная программа, которая после запуска выдает список пользователей, у
которых нет паролей. Она не делает ничего противозаконного с точки зрения
ОС!
Дыр в защите Windows NT тоже
немало (http://www.hackzone.ru/) . Получить доступ к NTFS из DOS
можно с помощью специального драйвера ntfsdos (www.sysinter-nalf.com/nt(8l3.htm). I Если вы забыли
убрать права изменения для Everyone (они имеются по умолчанию) в каталогах
%sys-temroot% и %systemroot%sys-tem32, то этим кто-нибудь вполне может
воспользоваться. Чтобы легче было контролировать назначенные права,
воспользуйтесь программой DumpAcI (http://somar-sott.com/np/DUMPACl.ZIP) Поддельные DLL
(Tunafpnwdnt) позволяют выводить в файл пароли и права пользователей. 1 При
переименовании выполняемых файлов они все равно будут запущены. Например:
start readme.doc (readme.doc может оказаться утилитой rollback или любой
другой программой). 1 Если Administrator имеет право входа в систему через
сеть, то это позволяет хакеру запустить процедуру угадывания пароля, так как
для администратора нет защиты по числу неудачных попыток. 1 Достаточно много
ошибок защиты связано с привилегированными Microsoft-программами типа US,
Frontpage и другими (http://ntsecurlty.com/News/bugs/alert.html, http://www.iss.net/vd/nttaa.html). Часть багов
исправлена,другие остаются. Но как мы можем узнать, сколько сделано
новых?
Однако подлинной "дырой в защите"
нужно назвать Windows 95. Эта система, можно сказать, оптимизирована для
взлома. Сама себя она защитить никак не может, поэтому запрос пароля на вход в
Windows 95 можно назвать насмешкой над пользователем. Хуже всего, что система
запоминает вводимые пароли в PWL-файлах и в кэше. Для тех, кто не знает,
сообщаю, что при вводе нового имени и пароля в каталоге Windows 95 создается
файл с указанным именем и расширением PWL. Для шифровки используется неплохой
алгоритм, но в нем записано и имя пользователя, которое вы вводили. Благодаря
такой ошибке программа glide успешно читает этот пароль (исправлено в
OSR2). Если включено кэширование паролей, то небольшая программа
pwlview успешно выбирает их из кэша. В принципе, пароль в Windows 95
потерять не так страшно, его лучше вообще сделать пустым. Ужасно выглядит то,
когда пароли в Windows 95, NetWare и NT совпадают. Это очень удобно...для
хакеров! Многие диски пользователей открыты рабочей группе для чтения. Одним
движением можно получить доступ ко всему. Печально и то, что система
предлагает сохранять пароли для доступа к отдельным ресурсам. Администратор
может случайно забыть, что входил на другой машине, и оставить путь свободным.
Утилиту PWLEDIT (из Windows Resource Kit) следовало бы лучше
рекламировать.
Активная защита. Вспомните нашего
легендарного BOFH (Bastard of Hell). Как он управлялся со своими юзерами!
Сказка сказкою, но в ней намек! Администратор сети - это действительно важный
человек в компании, потому что он владеет (или может овладеть) секретной
информацией. Он может выведать все и обо всех. О его действиях может не узнать
никто. Он-хозяин сети! В компьютерном мире он босс. Администратор может быть
самым жестоким тираном и самым опасным врагом для фирмы. И примеров здесь
предостаточно. Как вы думаете, почему на должности специалистов по
безопасности известные западные компании часто приглашают бывших хакеров?
Потому что они думают иначе, нежели обычные люди. Их мышление и навыки такие
же, как и у противника. Думать как преступник - намного сложнее. Другой
вопрос, а можно ли доверять им?
Активная оборона предусматривает
действия, во многом аналогичные хакерским. Чтобы предотвратить преступление,
вы должны знать о нем, пока оно еще готовится. Вы должны собрать
доказательства, уличающие в подготовке к совершению действия.
Какие мероприятия должны проводиться
регулярно, чтобы достичь результата?
По аналогии с полицейским
расследованием, вы должны прослушивать разговоры подозреваемых, просматривать
их почту, знать об их увлечениях и планах.
Фирме следует утвердить некоторый
документ, описывающий права и обязанности пользователей компьютера, и
ознакомить с ним персонал. Это снимает отговорки типа "Я не знал, что это
нельзя" и дисциплинирует сотрудников, которые дорожат своей работой. В этом
документе необходимо упомянуть и об их обязанностях по защите информации,
включающих сохранность собственных паролей, резервных копий и т. д. На
администратора (или специальное лицо) возлагается контроль выполнения
инструкции, включающий в себя разнообразные мероприятия, описанные
ниже.
Постоянно проводить полное
обследование компьютеров слишком неудобно (и долго), но поиск определенных
имен файлов и словосочетаний в них осуществить можно. "Ищейку" можно
замаскировать под антивирус или что-нибудь другое. Для того чтобы пользователи
привыкли, нужно проводить регулярное антивирусное обследование их машин, а
затем подменить программу своей. Замечу, что для примеров я буду использовать
NetWare и Windows NT. Поисковую программу необходимо вставить в системную
процедуру регистрации (или входной скрипт). Вывод перенаправляется в некоторый
каталог, где пользователи имеют права только на создание файлов. Для создания
уникальных имен выходных файлов используется системная переменная-адрес
сетевой карты. В NetWare удобно использовать следующее имя файла:
%P_STATION.%LOGIN_NAME. Если у вас не установлена поддержка длинных имен для
NetWare, записывайте передаваемый параметр в выходной файл. Тогда внутри файла
у вас будет имя типа AOC941AF04. MANAGER (а файл будет называться
AOC941AF04.MAN). После обследования администратор запускает утилиту проверки,
которая, пользуясь базой адресов и соответствующих имен, проводит поиск. Можно
просматривать и вручную. Для определения имени пользователя по адресу его
сетевой карты нужно создать файл с полным списком командой userlist /а,
а затем запускать маленький ифе-файл: find "X1" c:adTOinulist.txt
Очень хорошо регулярно сканировать
жесткие диски пользователей, проверяя размеры всех каталогов. Для этой цели
подойдет любая программа типа п с(1из Norton Utilities: ncd /L:t:logtree
XP_STA-TION.XLOGIN_NAME /batch /t /a
Внимательно рассматривая содержимое,
можно узнать кучу интересной информации, например, сколько места занимают
игры, а сколько отчеты.
После такой проверки круг
подозреваемых резко сужается.
Это единственный способ выявить кражу
данных, доступ к которым официально разрешен, но вынос запрещен строжайше. Вот
пример из личной практики. База данных фирмы работает под управлением FOXPRO
для DOS. Разумеется, пользователи, имеющие права на эту задачу, могут читать
файлы из этого каталога. Далее командой copy легко можно скопировать базу на
свою машину и потихоньку унести копию. К счастью, незадачливый хакер не смог
унести данные и был обнаружен службой безопасности во время поиска покупателей
товара. Когда же начали просматривать офисный компьютер, нашли столько
интересной информации, что и представить было трудно.
Могла ли программа-ищейка помочь
обнаружить его раньше? В принципе могла! Конечно, хакер мог переименовать и
заархивировать файлы. Но ему необходимо прятать значительный объем информации
на компьютере. Если бы "ищейка" проверяла объем свободного места на диске и
структуру каталогов, то это смогло бы навести администратора на
подозрения.
Еще одна интересная игра, выявляющая
пристрастия ваших подопечных к компьютерному взлому, называется "ловля на
живца". "Живец" - это некий ресурс, который может вызвать у "рыбки" интерес.
Например, какой-нибудь популярный декодер паролей или самораспаковывающийся
архив с названием password (или любое другое). Создать такую программу
достаточно легко. После запуска она запишет файл с сообщением ("поплавок") в
каталог ловушки (недоступный для удаления пользователем) и предупредит
пользователя об ошибочности его намерений. Небольшая беседа в тесном кругу
наверняка отобьет у этого новичка вредные мысли. В итоге никто не пострадал, и
преступление не было совершено! Для более опытных хакеров предназначаются и
более серьезные ловушки. В качестве наживки нужно использовать настоящего
"живца", и "рыбалка" будет очень интересной!
Чтобы получить реальные
доказательства, потребуются программы, отслеживающие и просто колирующие
действия подозреваемого. Например, spy для DOS. Она записывает все открытые
файлы в log-отчет. К сожалению, если пользователь работает под Windows, это не
проходит. Но достаточно поискать, и подобные программы легко можно найти.
Обязательно нужно использовать средства аудита той операционной системы,
которую вы используете. Включение компьютера в нерабочее время, странная
активность пользователя, большой объем файлов в неподходящих местах - все это
признаки. которые нужно отслеживать. Разумеется, этим должны заниматься
специально написанные программы, иначе администратору и вздохнуть будет
некогда.
Интересную возможность предоставляют
утилиты визуального слежения за работой пользователя. В NetWare, при работе
пользователя в DOS, это не приводит к сильным задержкам и прекрасно позволяет
следить за несколькими экранами поочередно (парочка master и minion).
Вы даже можете нажимать клавиши за пользователя. Обычно такие утилиты
используются для удаленного управления, но их можно приспособить и чисто для
слежки. При работе в Windows скрыть свое пребывание значительно сложнее. И для
создания своих программ вам вполне могут подойти хакерские разработки, в
большом количестве встречающиеся в Интернете. В самом деле, с мечом нужно
бороться мечом!
Очень важно не забыть про
контрразведку. То, что за вами могут подсматривать, - достаточно очевидно. Как
и всегда, в DOS вы можете обнаружить это легче и быстрее, проверяя оперативную
память, сравнивая Login с эталоном. Стандартная утилита безопасности Security
стоит того, чтобы ее запустить, хотя и выдает кучу ненужной информации. На
своей машине, если вы пользуетесь Windows, ставьте хотя бы Windows NT! NT не
пустит злоумышленника так просто, как Windows 95.
Какую бы стратегию защиты вы ни
выбрали, помните, что фитиль уже зажжен и бомба может взорваться в самый
неподходящий момент.
Датой рождения технологии Асtve
Server Pages (далее ASP) можно считать ноябрь 1996 года, когда Microsoft
Corporation на конференциях "Site Builders" и "Professional Developers"
впервые представила новую технологию Active Platform, и не понятно, почему
спустя полтора года эта технология находится все еще в младенческом состоянии
(чтобы убедиться в этом, достаточно, "скользя" по сайтам, обращать внимание на
расширение файлов в URL: не так уж часто встретишь .asp). Мне кажется, что
появление ASP среди Интернет-технологий можно сравнить с появлением visual
Basic для разработки Windows-приложений (постараюсь убедить в этом, чтобы не
показаться апологетом "Большого Брата Б. Г.").
Так, широко провозглашенный лозунг
"Активного Интернета", кроме "активных" обсуждений, практически ничего с собой
не принес - если не считать изредка всплывавших на некоторых сайтах
CGI-скриптов, которые в основном были просто "фенечками" для увеличения
количества хитов. Не скажу, что это плохо, скорее, это детская болезнь всех
Интернет-технологий. Даже язык Java не избежал этой участи: пока что ничего
серьезного, написанного на нем, в Сети не наблюдается - зато "бегущих строк",
красивых подпрыгивающих и вертящихся на все лады картинок и ремиксов из
классического прошлого (тетрис, puzzle и т. п.) более чем достаточно (да, еще
часы забыл - этих просто море). Может быть, именно из-за этого Java не
воспринимается как настоящая рабочая лошадка?
А вот ASP сразу заработали всерьез.
Это решение было гениально просто: обычный ISAPI-фильтр , работающий в
контексте процесса MS Internet Information Server начиная с версии 3.0 (хотя
уже давно существуют ASP и для других серверов), представляющий собой почти
обычный препроцессор, но насколько мощный и гибкий! Отличие от препроцессора -
в возможности работы с СОМ-объектами (в контексте ASP их называют
Installable components), они-то и добавляют львиную долю
мощности.
Проект под названием Denali почти
идеально вписывается в технологию "клиент-сервер", теперь уже не настолько
популярную. Хотя, что может лучше подходить для Сети, чем технология создания
приложений "логически централизованных - физически децентрализованных"? Говоря
простым языком, логически централизованные - это распределенные
вычислительные системы, доступные и
управляемые из любой точки, а физическая децентрализация - это возможность
расширения, масштабирования, повышения надежности.
В первую очередь, ASP имеет
достаточно развитый командный язык. И даже не один, а как минимум
два:
VBScript и JScript. "Как минимум",
потому что объектная модель OLE для скрип-товых машин позволяет легко
встраивать в среду другие языки. Поэтому разработчикам на Peri или REXX можно
не переучиваться, а использовать накопленный опыт. Тем не менее,
языком
"по умолчанию" для ASP является
VBScript - фактически подмножество visual Basic, и в этом, конечно же, нет
ничего удивительного - продукт Microsoft Corporation. JScript, с другой
стороны, - подмножество Java и так же похож на C++. И у той, и у другой
скрипт-машины есть как преимущества, так и недостатки. Здесь (как, впрочем, и
всегда) "на вкус и цвет...", но если вкратце, то JScript все-таки кажется
помощнее и почти дотягивает по возможностям до "взрослых" (нескрип-товых)
языков. Это далеко не ассемблер, практически невозможно поковы-ряться в
потрохах у системы, но, по всей видимости, разработчики ASP посчитали это
дополнительной защитой от вторжения извне.
Что касается самого кодирования, то
оно не требует никаких дополнительных затрат в виде специальных сред
разработки. Microsoft рекомендует использовать MS InterDev, почти во всех
современных версиях HTML-редакторов (например, Allaire HomeSite) предусмотрена
поддерж
ка тегов ASP, но, к примеру, я
использую обычный (правда, очень хороший) текстовый редактор TextPad версии
3.2.2 от компании Helios Software Solutions. Код "вставляется" прямо в
HTML-текст в окружении специального тега:
<% asp-код %> После
этого файлу нужно дать имя с расширением .asp, чтобы он был передан на вход
ASP-фильтра для переработки в обычный HTML и выдачи US-серверу, который
передаст результат браузеру. Причем любому, будь то MS IE, Netscape Navigator
или браузер "третьего мира", главное -чтобы он понимал HTML (а это ведь,
вообще-то, первостепенная задача браузера). Чем не универсальная платформа, к
которой долго и упорно стремятся все кому не лень? Конечно, в браузерах все же
есть отличия, то есть в их интерпретации стандартного HTML. Всем это знакомо:
одни и те же странички, написанные на самом что ни на есть стандартнейшем
HTML, смотрятся иногда совершенно по-разному в 1Е и NN. Так что можно даже
вешать на них не "Best viewed with...", a "Viewed only with..." (что-то
навеяло "Only white", не правда ли?). Недавно в "Компьютерре" была небольшая,
но интересная заметка по поводу "невидимок"'. А вообще-то, ASP может
справиться и с этой "проблемой" (определяется тип браузера, с которым пришли,
и навигация идет по страницам, написанным для этого типа).
Происхождение одной из труднейших
проблем при создании Интернет-приложений обусловлено самой природой Сети. Это
отсутствие гарантированной постоянной связи, и, как следствие, невозможность
создания непрерывного канала для отслеживания действий конкретного клиента.
Единственный выход из этой ситуации - если клиент при каждом обращении будет
"представляться". Именно это и сделано при помощи "куки". Немало копий было
поломано по поводу безопасности "кук", но на данный момент, вроде бы, решили,
что они достаточно безвредны, если не считать нескольких десятков байт,
съедаемых на диске. Зато пользы от них, как можно увидеть, гораздо больше.
После старта сервер выдает каждому пришедшему клиенту уникальный идентификатор
(SessionID) в виде "ку-ки" и в течение сессии может понимать "кто - где". Я не
зря написал "после старта", потому что ID уникальны только в период
непрерывной работы сервера. Если остановить и снова перезапустить сервер, то
можно получить значения такие же, как до перезапуска. Поэтому применять
SessionID в приложениях в виде уникального идентификатора не рекомендуется -
лучше формировать свои.
Для настройки сессии можно
использовать два объекта: Application и Session. Каждый из них имеет по два
обрабатываемых события: On-Start и OnEnd. Первый клиент, пришедший на сервер,
вызывает создание объектов Application и Session и отработку для них своих
процедур OnStart. Каждый последующий клиент вызывает создание объекта Session
для себя и отработку OnStart для своего объекта. После ухода клиента для
соответствующего объекта Session отрабатывается процедура OnEnd, иобъект
уничтожается. Сухо-дом последнего, кроме того, вызывается процедура OnEnd для
объекта Application, и уничтожается объект Application. Уход клиента
происходит либо по тайм-ауту, период которого задается в минутах свойством
Timeout объекта Session (по умолчанию 30 минут), либо силовым методом Abandon
того же самого объекта. Фактически, объект Session нужен для персонализации,
то есть хранения переменных среды конкретного клиента, a Application - для
хранения глобальной информации всего приложения. Процедуры для обработки
событий OnStart и OnEnd описываются в файле Global, asa, который должен
находиться в корне виртуального каталога.
Все усилия по созданию активного
Интернет-приложения пропадут даром, если не будет механизма приема-передачи
данных. ASP выполняет это с помощью двух встроенных объектов: Request и
Response Используя свойства и методы этих объектов, можно добиться настоящей
интерактивности; единственным неудобством остается необходимость закачки новой
страницы каждый раз при исполнении какого-нибудь действия. Но тут не стоит
забывать, что ASP - это именно серверная часть в клиент-серверной модели, а
для клиентской части существуют другие решения.
Как уже было сказано выше,
СОМ-объекты играют важную роль в жизни ASP. Вы можете использовать
собственноручно созданные компоненты, но можно обойтись и набором
предустановленных. За довольно длительный период использования ASP нам
понадобился лишь один самодельный компонент, который занимается отправкой
почтовых сообщений (большое спасибо за это Леониду Агранонику). Но вот без
одного СОМ-объекта почти невозможно обойтись - это Database Access. Он
обеспечивает доступ к данным, используя ActiveX Data Objects(ADO). Все, что
для этого нужно, это создать объект Database Access, указать ему Data Source
Name (DSN), соединиться с источником данных, и дальше возможности
ограничиваются практически только вашей фантазией. Так как используется ODBC,
источник данных может быть любым: сегодня драйверы ODBC написаны для
всевозможных вариантов и не ограничиваются системами управления базами данных.
Более того, с выходом объектной файловой системы (Object File System), которую
Microsoft обещает продемонстрировать в NT 5.0, ADO будут способны управлять
файловой системой в стиле баз данных. Как прямой потомок Data Access Objects
(DAO) и Remote Data Objects (RDO), мoдeльADO (pllC. 3) очень похожа на своих
предшественников, вплоть до того, что программист, имеющий опыт работы с DAO
или RDO, способен практически сразу использовать все возможности ADO.
Разработчики утверждают, что внешне единственное отличие от старых моделей -
это только ускорение, упрощение и увеличение надежности работы приложений, и
представляют ADO как ядро новой технологии универсального доступа к данным
(Universal Data Access).
Одним из перспективных направлений
будет Windows Scripting Host, который появится в NT 5.0 и Win98. Это одна из
стратегий, направленных на снижение усилий по администрированию (ZAW).
Действительно, администраторы могут удаленно (из любой точки Сети)
переконфигурировать системы или использовать скрип-ты для их автоматической
настройки в зависимости от условий. Мне кажется, это начинание благородное, и
давайте оценим его по достоинству.
Microsoft продвигает технологию ASP
достаточно активно. Об этом говорит хотя бы то, что в MS Internet Information
Server 4.0 она уже входит как составная часть, в отличие от IIS 3.0, где ASP
представляли собой продукт, который было нужно инсталлировать отдельно. Кроме
того, MS Site Server и MS Site Server Commerce Edition, позиционируемые как
универсальные инструменты для строительства активных Web-сайтов, являются теми
же самыми ASP с огромным набором специализированных компонентов. Говоря иными
словами, их можно написать самостоятельно. Или дописывать по мере
необходимости, развивая свой сайт не только "вширь", но и "вглубь". Напоминает
что-то вроде серверного тамагочи.
Вот, вкратце, и все. Если стало
интересно (или есть проблемы, связанные с использованием ASP), обращайтесь по
адресам http://www.activesepverpages.com/, http://www.asphole.com/, http://www.lsseconds.com/ и, конечно же, www.microsoft.coml/iis/.
|