Валидатор. Ломаем Small HTTP Server. Scandisk

Наконец-то дошли руки. Написал свой собственный HTML-валидатор. Атрибуты тегов он, можно сказать, не проверяет, главный упор был сделан на проверку правильности построения таблиц. Ни один из валидаторов, которые я смог найти, толком этого делать не умеют. Как сопутствующее, добавил проверку на скрещивание и пропуск тегов. Язык - Perl, но работает довольно шустро. Выкладывать пока не буду - оставлю для собственного пользования.



Тестировал я его под Small HTTP Server (by Max Feoktistov) v 2.03 и решил этот самый сервер "поковырять" на предмет неустойчивой работы и дыр в системе безопасности. Вот что я наковырял:

  • Встретив инструкцию <--#exec --> (именно в такой форме), в файле, где разрешены SSI, сервер "падает" с ошибкой при обращении к KERNEL.DLL.

  • <--#include virtual="C:/autoexec.bat" --> - выдаст на экран файл autoexec.bat или, при указании другого пути, что-то более интересное. Так что, будьте осторожны, используя эту конструкцию с переменными, переданными странице через GET, в качестве параметра.

  • Если знать название хотя бы одного SSI-скрипта, можно, довольно легко, "уронить" сервер дистанционно. Достаточно написать что-то вроде "file.shtm?%".

  • Посланные несколько раз подряд запросы, вида "http://xxx.xxx.xxx.xxx/PRN" (можно CLOCK$ или CONFIG$), вызывают, на моем Celeron-466 под Windows 98, долгую 100%-ю загрузку процессора, причем без свопа. То есть, чувствуется, что компьютер сильно тормозит, но от чего, без анализа, непонятно.

  • И уж совсем "на сладкое". Запрос вида "http://xxx.xxx.xxx.xxx./AUX" вызвал у моей 98-й Винды глубокую кому, вывести из которой ее смогла лишь перезагрузка через Reset, тут же повлекшая за собой потерянные сектора и неправильные длинные имена файлов.

Кстати, могу предположить, что под 2000-й, например, что-то из перечисленного может и не сработать. Надо будет как-нибудь попробовать.

L.P.S. Попробовал. Все перечисленное, кроме последнего пункта, работает. Правда, 100%-я загрузка процессора на Windows 2000 не очень-то сказывается, хотя в мониторе видна. По правде говоря, вообще не сказывается. Вот что значит нормальная многозадачность.


Scandisk хвастается.


Папка C:\Windows
была повреждена:
Эта папка содержала одно или более длинных имен файлов,
не связанных с файлами.
  Устранение ошибок: Исправить ошибку
  Результаты: Ошибка была исправлена.

Программа проверки диска обнаружила на этом диске ошибки и все их исправила.



Почему хвастается? Потому что информации в логе - ноль рублей две копейки. Сколько именно было файлов? Что это были за имена? Как именно scandisk исправил ошибку? А по-другому было нельзя?

11 февраля 2001 14:27

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML: