
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 псевдоуникальной стро-