>>>

Проектирование, разработка и оптимизация веб-приложений

Безопасное проектирование

Неважно, чем вы занимаетесь и насколько незаметен ваш вебсайт — его все равно атакуют. Планирование является неотъемлемой частью системы безопасности, поскольку оно позволяет сократить ущерб от вирусов, шпионского ПО и других вредоносных программ.

Попробуйте представить себя на месте злоумышленника и воспользоваться здравым смыслом, чтобы найти очевидные уязвимости. Некоторые ошибки при планировании инфраструктуры вебсайтов допускаются столь часто (как начинающими, так и опытными профессионалами), что имеет смысл остановиться на них подробнее.

Файлы cookie

Одна из основных проблем при проектировании вебприложения заключается в том, что запрос новой страницы всегда обрабатывается вне контекста предшествующих запросов. Попросить вебприложение «запомнить пользователя» сложнее, чем обычно.

Большинство браузеров поддерживают два метода, которые вебприложения могут использовать для «запоминания» посетителей: обычные файлы cookie и файлы cookie сеанса.

Различие заключается в том, что обычный файл cookie сохраняется на компьютере пользователя и остается на нем до момента удаления пользователем. Файл cookie сеанса, напротив, хранится только на протяжении времени работы компьютера и автоматически теряется при закрытии приложениябраузера. Тем не менее, у них есть общая черта: они подвержены манипуляциям извне.

Разработчики часто склонны считать данные из файлов cookie надежными, поскольку считают, что все должно быть в порядке, поскольку они сами разрабатывают соответствующий код. Они ошибаются. Хакер может с легкостью изменить файл cookie (а в некоторых случаях — и данные активного сеанса), чтобы обманом заставить вебсайт предоставить доступ к закрытой странице.

При проектировании системы никогда нельзя полагаться на надежность пользовательских данных, вводимых посетителями напрямую или поступающих через файлы cookie. Стремитесь ограничить объем данных, сохраняемых в файлах cookie, в особенности тогда, когда эти данные не следует хранить в открытом доступе. Оптимальный подход — считать все данные, хранящиеся на компьютере пользователя, ненадежными.

Аутентификация

Если какието области вебсайта должны быть доступны только некоторым клиентам или зарегистрированным пользователям, для подобного разграничения доступа потребуется метод проверки подлинности пользователей.

Существует несколько способов аутентификации пользователей: базовая аутентификация, дайджестаутентификация и HTTPS.

При выборе системы аутентификации рекомендуется использовать самый безопасный вариант из имеющихся в наличии. Другие варианты отпугнут клиентов, заботящихся о защите своих данных, и могут привести к возникновению излишнего риска для пользователей.

Компоненты, библиотеки и надстройки

Многие вебразработчики не утруждают себя изобретением велосипеда. Если вас просят добавить популярную и широко используемую функциональность, проще всего найти пакет, в котором уже есть имеющийся компонент, и настроить его под свои нужды. Подобная ситуация зачастую характерна для сложных многофункциональных микроприложений — блогов, форумов и систем управления контентом (CMS).

Причины для использования настраиваемых систем, предлагаемых сторонними разработчиками, очевидны: экономия времени и средств.

Тем не менее, как и любое другое ПО, подобные надстройки могут иметь свои недостатки; в связи с этим необходимо следить за тем, какие именно пакеты используются, и регулярно их обновлять. Популярность некоторых пакетов может вести к возникновению ложной уверенности в их надежности; во многих распространенных пакетах обнаруживаются уязвимости, актуальные даже при правильной установке и настройке.

К числу популярных серверных приложений, в которых в прошлом обнаруживались серьезные уязвимости, относятся следующие:

Многие из перечисленных (и аналогичных им) надстроек широко распространены, что делает их привлекательной целью для хакеров, стремящихся максимально расширить число потенциальных жертв. Поскольку большинство операционных систем и HTTPсерверов поддерживают автоматическое обновление, многие разработчики «настраивают и забывают» определенные функции, но при этом пренебрегают обновлением различных надстроек; это весьма опасная ошибка.

Опятьтаки, здесь, как и ранее, рекомендуется использовать следующее правило: долой то, что не используется! Если поставщик услуг хостинга поддерживает подобные функции по умолчанию, отключите их. Если отключить их невозможно, следует подумать о том, нужны ли вам такие услуги.

Лог-файлы

Серверные лог-файлы — весьма важный инструмент управления вебсайтом. Обычно HTTPсерверы способны вести раздельные журналы доступа и ошибок; при наличии подобной функциональности ее следует использовать в обязательном порядке, поскольку это может пригодиться для последующего анализа.

Лог-файлы также следует регулярно просматривать, поскольку они могут помочь в более глубоком знакомстве с угрозами, которым подвергаются вебсайты. Лог-файлы позволяют отслеживать потенциальные угрозы безопасности, так как в них детально фиксируются все успешные и предпринятые попытки обращения к сайту.


Размер шрифта:
А
А
А
Цвет сайта:
A
A
A
Изображение:
Вкл.
Выкл.
Обычная версия