328 Глава 7
Наряду с функциональным тестированием в Web-приложениях возрастает
роль тестирования технических характеристик, прежде всего, надежности и вос-
станавливаемости, безопасности, производительности, конфигурации (в разных
браузерах и платформах).
Вопросы тестирования безопасности охватывают, помимо проверки кор-
ректности ввода, анализ таких распространенных аспектов «уязвимости» Web-
приложений, как плохие механизмы аутентификации, логические ошибки, непред-
намеренное раскрытие информации, а также традиционные ошибки в обычных
приложениях. Так, в работе [49] предложена методология систематического тести-
рования, охватывающая следующие аспекты проверки:
1. Идентификация окружения web-приложения. Включает анализ информа-
ции об используемых языках скриптов, Web-сервере, операционной системе. Для
извлечения такой информации рекомендуется:
– проанализировать отклик на HTTP-запросы HEAD и OPTIONS (из заго-
ловка или любой страницы, содержащей строку SERVER);
– исследовать формат и текст информации о 404-й ошибке сервера (и дру-
гих). Некоторые системы имеют легко узнаваемые сообщения об ошибках, а также
часто позволяют узнать версии используемых языков. Можно преднамеренно за-
просить страницы, приводящие к подобным ошибкам, а также использовать аль-
тернативные методы запроса (POST, PUT и т.п.) для извлечения информации из
сервера;
– проверить распознаваемые типы файлов/расширения/каталоги. Многие
Web-серверы по-разному реагируют на запросы файлов с поддерживаемыми и не-
известными расширениями. Следует попытаться запросить файлы со стандартными
расширениями, такими как “.ASP”, “.HTM”, “.PHP”, “.EXE”, и следить за появле-
нием какого-либо необычного результата или кодов ошибок;
– проверить исходные тексты доступных страниц. Исходный текст страни-
цы, сгенерированной Web-приложением, может указывать на используемое про-
граммное окружение;
– попытаться исказить входные данные для получения ошибок в скриптах.
Это также позволит получить информацию об окружении Web-приложения;
– использовать сканирование TCP/ICMP и сервисов. Для этого рекоменду-
ется использовать анализаторы приложений (в частности, Amap и WebServerFP)
или средства сканирования Nmap и Queso.
2. Тестирование скрытых элементов форм и раскрытие исходных текстов.
Включает проверку всех исходных текстов страниц на наличие любой полезной
информации, непреднамеренно оставленной разработчиком - это могут быть фраг-
менты скриптов, расположенных внутри HTML-кода, ссылки на подключаемые или
связанные скрипты, неправильно розданные права доступа к критичным файлам с
исходным текстом. Должно быть проверено наличие каждой программы и скрипта,
ссылки на которые были найдены. В случае обнаружения они тоже должны быть
протестированы.
3. Определение механизмов аутентификации. Необходимо проверить, как
выбранный механизм применяется к каждому ресурсу, используемому Web-
приложением. Для этого следует попытаться получить доступ ко всем ресурсам
через каждую точку входа. Многие Web-системы предлагают средства поддержки
сессий, основанные на сохранении в cookie или Session-ID псевдоуникальной стро-