Файлы cookie

Cтатья "Обеспечение безопасности веб-сайтов" предоставлена Sophos Plc и SophosLabs.

Декабрь 2007 г.

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

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

  • Файл cookie — это небольшой файл, создаваемый браузером и хранящийся на компьютере пользователя. Его содержимое не регламентируется, но обычно в таких файлах хранится название, дата окончания срока действия и некий объем данных, например: «Count = 100» или «Member = false» .

  • Файл cookie сеанса похож на обычный, но при этом он позволяет веб-приложениям хранить данные в памяти.

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

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

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

В 2007 году сайт MySpace.com подвергся атаке с помощью трояна JS/SpaceStalk-A, который крал информацию, хранящуюся в файлах cookie, и передавал ее на удаленный сервер. Такая информация может содержать конфиденциальные сведения — имена пользователей, адреса предпочитаемых сайтов и пароли.

К следующему разделу