Ансамбль Java-сервлетов
Помимо ансамбля на основе Miva Empressa разработчики оформили альтернативный ансамбль, основанный на Java-сервлетах. Первоочередное проведение анализа ансамбля Miva Empressa обусловливалось наличием в группе разработчиков ASEILM серьезного опыта работы с компонентами; следовательно, на этом направлении были сосредоточены наиболее обширные ресурсы. Несколько меньше ресурсов пришлось на оценку ансамбля Java-сервлетов. Поскольку исследование, как и в первом случае, сводилось к операциям решения модельной задачи, три этапа удалось сохранить в неизменности. ♦ Этап 1 — проектный вопрос остался без изменений. ♦ Этап 2 — в наборе исходных критериев оценки остались все четыре критерия. ♦ Этап 3 — ограничения также не претерпели изменений. Таким образом, новая процедура оценки началась с этапа 4, на котором (как изображено на рис. 18.4) конструируется модельное решение. Рис. 18.4. Ансамбль JavaServer Pages
Два первых критерия в новом решении удовлетворялись теми же процессами, которые ранее были реализованы в ансамбле Miva Empressa. Поскольку приложение Cliarl Works пошло в состав ансамбля Java, разработчики продолжили попытки исправить несоответствие протоколов HTTP/HTTPS путем введения адаптеров. Java-сервлеты предусматривают отделение презентационных аспектов системы от бизнес-логики и логики базы данных. Логика представления была ограничена страницами HTML, в то время как бизнес-логику и логику базы данных разработчики перенесли в сервлеты и Java beans, исполнявшиеся на сервере приложений Tomcat, — таким способом они обеспечили соответствие критерию 3. Кроме того, заменив Access на SQL-Server, разработчики добились возможности применения удаленного соединения, не предполагавшего вывода базы данных за брандмауэр, — итак, с критерием 4 тоже разобрались. В процессе разработки модельного решения нового ансамбля произошли следующие четыре события: ♦ Исходные критерии, как мы уже сказали, оказались недостаточными. ♦ Отдельные элементы проектного решения продемонстрировали неспособность удовлетворить исходные критерии. В частности, оказалось, что соблюдение критерия 2 («Между HTTP-сервером и веб-браузером должна быть организована безопасная передача данных по соединению HTTPS») не позволяет обеспечить безопасность системы (о том, с чем это связано, мы поговорим чуть позже). ♦ Заинтересованные лица сформулировали дополнительные требования. ♦ Новый Java-ансамбль поставил новые задачи. Рассмотрим три последние проблемы. Безопасность Помимо защиты передачи данных по каналам, в пересмотре нуждалась модель аутентификации. Изначально при аутентификации пользователя на его машине в форме cookie записывался и привязывался к данному сеансу уникальный идентификатор. Разработчики понимали, что в случае компрометации системы безопасности на клиентской машине возможно получение доступа путем обмана с последующей компрометацией защиты серверной машины. Для защиты от таких явлений было принято решение о регистрации IP-адреса машины, его привязке к уникальному идентификатору и проверке при каждом последующем запросе. Иногда хакеры обращаются к методике «перекрестных сценариев» (cross-side scripting). При этом они сохраняют на своей машине веб-форму и вносят в нее определенные изменения. Впоследствии, после подачи такой формы, происходит аварийный отказ сервера, и он выводит на клиентскую машину код или иную не предназначенную для вывода информацию. Стараясь предотвратить атаки подобного рода, разработчики ASEILM определили ряд исключений.
|