Как защитить файлы cookie

Обновлено: 21.11.2024

Представьте себе, что вы бэкенд-разработчик, которому нужно внедрить сеансы в приложение: первое, что приходит вам в голову, это выдать клиентам токен и попросить их отправить этот токен с их последующими запросами. С этого момента вы сможете идентифицировать клиентов на основе токена, включенного в их запрос.

Что стоит за файлом cookie?

Сервер может установить файл cookie с помощью заголовка Set-Cookie:

Затем клиент сохранит эти данные и отправит их в последующих запросах через заголовок Cookie:

Истекает

Определяет срок действия файла cookie, чтобы браузеры не хранили и не передавали его бесконечно. Ярким примером является идентификатор сеанса, срок действия которого обычно истекает через некоторое время. Эта директива выражается как дата в форме Date: , ;::GMT , например Date: Fri, 24 Aug 2018 04:33:00 GMT. Вот полный пример файла cookie, срок действия которого истекает 1 января 2018 года:

Максимальный возраст

Подобно директиве Expires, Max-Age указывает количество секунд до истечения срока действия файла cookie. Файл cookie, который должен храниться 1 час, будет выглядеть следующим образом:

Домен

Аналогично директиве домена, но применяется к URL-пути ( /some/path ). Эта директива предотвращает передачу файла cookie по ненадежным путям, как в следующем примере:

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

Наоборот, постоянный файл cookie хранится на клиенте до истечения срока, установленного его директивами Expires или Max-Age.

Только хост

Если сервер не включает директиву домена, файл cookie считается файлом только для хоста, что означает, что его действие ограничено только текущим доменом.

Способ обойти это ограничение, как мы видели ранее, состоит в том, чтобы указать директиву домена файла cookie, что мы можем сделать, посетив wasec.local:7888/?domain=on:

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

Компании любят зарабатывать на рекламе, это не новость. Но когда интернет-провайдеры начинают агрессивно отслеживать своих клиентов, чтобы показывать нежелательную рекламу, это совсем другая история.

В 2016 году компания Verizon была признана виновной в отслеживании пользователей без их согласия и передаче их информации рекламодателям. Это привело к штрафу в размере 1,35 млн долларов США и неспособности компании продолжать свою сомнительную политику отслеживания.

Пометки файлов cookie, которые имеют значение

Зашифруй или забудь

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

JavaScript этого не касается

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

SameSite: убийца CSRF

И последнее, но не менее важное: флаг SameSite, одна из последних записей в мире файлов cookie.

Появившийся в Google Chrome v51, этот флаг эффективно устраняет подделку межсайтовых запросов (CSRF) в Интернете. SameSite — это простое, но новаторское новшество, поскольку предыдущие решения для атак CSRF были либо неполными, либо слишком тяжелыми для владельцев сайтов.

Чтобы понять SameSite, нам сначала нужно взглянуть на уязвимость, которую он нейтрализует. CSRF — это нежелательный запрос, сделанный сайтом A сайту B, в то время как пользователь аутентифицирован на сайте B.

Звучит сложно? Позвольте мне перефразировать.

Предположим, что вы вошли в систему на веб-сайте своего банка, на котором есть механизм перевода денег на основе HTML и нескольких дополнительных параметров (целевого счета и суммы). Когда веб-сайт получит запрос POST с этими параметрами и файлом cookie сеанса, он обработает передачу. Теперь предположим, что вредоносный сторонний веб-сайт устанавливает HTML-форму как таковую:

Понимаете, к чему это ведет?

Если вы нажмете кнопку "Отправить", искусно замаскированную под привлекательный приз, с вашего счета будет переведено 1000 долларов США. Это подделка межсайтового запроса — ни больше, ни меньше.

Традиционно существовало 2 способа избавиться от CSRF:

Если мы затем посетим wasec2.local:7888/same-site-form, мы увидим пример HTML-формы, которая инициирует межсайтовый запрос:

Если мы нажмем кнопку отправки формы, мы сможем понять истинную силу этого флага. Форма перенаправит нас на wasec.local:7888, но в запросе браузера нет следов файла cookie SameSite:

Поскольку отправитель запроса является «безопасным» (нет источника, метод GET), браузер отправляет файл cookie SameSite вместе с запросом.

- пометка файла cookie как SameSite=Lax|Strict предотвратит отправку его браузером в запросах из разных источников, что сделает любую CSRF-атаку неэффективной

Альтернативы

Что бы сделал Леброн?

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

В следующей статье этой серии будет рассказано о том, что я называю «Ситуационные ситуации».

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

Это известно как захват файлов cookie, и я здесь, чтобы рассказать вам все об этом и научить вас, как положить этому конец.

Что такое компьютерный файл cookie

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

Что такое перехват файлов cookie

Атаки грубой силы

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

Это самый простой, но утомительный способ перехвата файлов cookie.

Внедрение вредоносного ПО

Вредоносное ПО также может использоваться для слежки за вами и записи сеанса вашего браузера.

Межсайтовый скриптинг

Атаки с использованием межсайтовых сценариев позволяют хакерам внедрять клиентские сценарии в веб-страницы.

Сниффинг пакетов

Когда злоумышленники собирают и регистрируют пакеты, проходящие через компьютерную сеть, часто без вашего ведома или согласия, это называется перехватом пакетов. Инструментом для этого является анализатор сети или Wi-Fi.

Как защитить себя от кражи файлов cookie

Загрузите его бесплатно и:

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

      CyberGhost Private Browser позволяет вам испытать настоящий анонимный опыт просмотра, ставя вашу конфиденциальность на первое место.

      Зашифруйте свои данные с помощью VPN

      VPN означает виртуальную частную сеть.

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

      Хороший VPN – это простой и эффективный способ защитить вашу информацию от хакеров.

      Избегайте использования незащищенных сетей Wi-Fi

      Общедоступные сети Wi-Fi иногда кажутся находкой, особенно когда сигнал в них хороший. Но у них так много недостатков.

      Чтобы оставаться в безопасности в любой сети Wi-Fi, не подключайтесь без подключения к VPN-серверу.

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

      До следующего раза оставайтесь в безопасности!

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

      Что такое файлы cookie

      К файлам cookie можно получить прямой доступ из javascript. Это очень просто:

      Защитить файлы cookie во время передачи с помощью безопасного атрибута

      Предотвращение подделки межсайтовых запросов с помощью атрибута SameSite

      К счастью, при настройке файла cookie вы можете указать, что браузер должен отправлять его вам, только если запрос исходит из того же источника (не является междоменным). Этот параметр файла cookie называется SameSite. Он имеет два возможных значения:

      Хотя это действительно хорошая защита от некоторых видов CSRF (по-прежнему не помогает, если идентификатор сеанса, например, передается параметром URL), он еще не широко поддерживается браузерами (по состоянию на 1/2018). . Вы можете проверить текущую поддержку на Can I Use.

      ОБНОВЛЕНИЕ: новое поведение SameSite

      Недавно, в соответствии с предложением IETF «Пошаговое улучшение файлов cookie», поведение файлов cookie SameSite изменилось.

      Изначально, если вы не указывали атрибут SameSite, он позволял без ограничений обмениваться файлами cookie между сайтами. Новое поведение выглядит следующим образом:

      • Поведение по умолчанию — Lax, если не указано иное.
      • Появился новый вариант "Нет".
      • Файлы cookie с Samesite=None должны быть безопасными .

      По состоянию на 03.03.2020 г. этот новый способ по-прежнему широко не поддерживается всеми браузерами. Chrome поддерживает это, начиная с версии 80, то же самое и с Edge. В Firefox вы можете явно включить поддержку, начиная с версии 69, однако по умолчанию она не включена. Вы по-прежнему можете использовать Samesite=None, так как он обратно совместим и игнорируется старыми браузерами.

      Свести к минимуму доступность файлов cookie

      Есть еще один параметр, который можно использовать для определения области действия файла cookie, аналогичный параметру Домен. Он называется Путь. Он используется для определения ресурсов в домене, на который будет отправлен файл cookie. Например, путь '/' означает все, /blog означает каждый ресурс, начинающийся с 'blog', например:

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

      Ограничить срок действия файлов cookie

      Точно так же, как вы хотите уменьшить область действия файла cookie, чтобы свести к минимуму количество мест, где его можно украсть, вы хотите свести к минимуму срок службы файла cookie, чтобы сократить время, в течение которого файл cookie становится уязвимым.

      Вы можете указать срок действия или срок действия файлов cookie, используя атрибуты Max-Age и Expires.

      Чтобы защититься от подделки запросов на кросс-сайтах, вы должны добавить атрибут SameSite со значением strict или lax. Но имейте в виду, что в настоящее время поддержка браузеров ограничена.

      Ограничьте векторы атак, вы должны свести к минимуму доступность вашего файла cookie. Это означает ограничение области действия (Домен и Путь) и срока действия (Истекает и Максимальный возраст). р>

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

      Как работают файлы cookie

      Когда сервер хочет установить файл cookie, он возвращает заголовок Set-Cookie с парой ключ-значение и некоторыми параметрами.

      Вы можете самостоятельно просмотреть все заголовки с помощью подключаемого модуля LiveHeaders для Firefox.

      Проблема

      Начало работы

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

      Существует три параметра, которые можно отправить вместе с файлом cookie, который при правильном использовании будет ограничивать использование файла cookie только вашим приложением. Прежде чем устанавливать эти параметры, вам нужно задать себе несколько вопросов:

      • Каким частям веб-сайта требуется доступ к файлам cookie?
      • Должен ли файл cookie работать между поддоменами?
      • Должен ли файл cookie сохраняться, если пользователь покинет SSL-часть сайта?

      Параметры файлов cookie

      Отправить файл cookie только вашему приложению

      Аргумент Path указывает, по каким путям на сайте отправлять файлы cookie. Значение по умолчанию «/» означает, что каждый запрос будет получать файл cookie, в то время как «/forums/» ограничит файл cookie только этим путем. Этот путь будет основан на фактическом URL-адресе, используемом браузером, до любого mod_rewrite или другого сопоставления URL-адресов.

      Не делиться с поддоменами

      Требуется безопасное соединение

      Защита от эксплойтов XSS

      Настройка файла cookie

      Чтобы изменить значения файлов cookie для файла cookie сеанса, требуется функция «session_set_cookie_params», которую необходимо вызвать до начала сеанса.

      Обзор

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

      Важно понимать, какой информацией вы делитесь в Интернете и как вы можете ею управлять.

      Когда кто-то предлагает вам файл cookie в автономном режиме, типичный ответ: "Да, пожалуйста!" или, может быть, «Можно мне два?»

      Однако при навигации в онлайн-мире с готовностью принимать каждое предложение файлов cookie, которое приходит вам на ум, может быть не лучшим способом действовать. Вот почему Вики Нгуен, корреспондент NBC News, занимающаяся расследованиями и вопросами защиты прав потребителей, посетила TODAY в пятницу, чтобы помочь всем понять, что на самом деле означают эти невинно звучащие запросы и как мы все можем лучше защитить свою конфиденциальность.

      Что такое файл cookie?

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

      Нгуен присоединился к Элу Рокеру, Крейгу Мелвину и Шейнелле Джонс с настоящим печеньем в руках, чтобы рассказать об основах.

      "Подумайте о печенье в реальной жизни, – – сказал Нгуен. «Что происходит, когда вы едите печенье? Ты делаешь крошки. Что происходит, когда есть крошки? Есть тропа. Они ведут вас куда-то».

      И иногда это может быть полезно.

      Файлы cookie могут служить различным целям. Они могут:

      • Запомните настройки, чтобы улучшить работу в Интернете.
      • Персонализация контента для отдельных пользователей.
      • Отслеживание пользователей.

      «Итак, на веб-сайте происходит то, что след (из крошек) приводит меня к Алу», — сказала она, указывая на соведущего 3-го часа СЕГОДНЯ. «Это напоминает мне: «О, это Эл Рокер. Вот его имя пользователя; вот его пароль. Я не собираюсь заставлять его каждый раз входить в систему». Или «О, Крейг предпочитает спортивные новости политике. Позвольте мне убедиться, что я отвезу его на спорт». И «Шейнель, в последний раз, когда она была там, она искала красный свитер. Может быть, ей нужен розовый свитер».

      Связанные

      Деньги Вот как изменить настройки конфиденциальности Alexa, чтобы Amazon не мог их прослушивать

      Таким образом, вместо того, чтобы игнорировать запрос, обязательно нажмите «Отклонить» или, если есть параметр «Настройки файлов cookie», выберите его и продолжайте выбирать варианты из множества представленных параметров файлов cookie. Просто обратите внимание, что это может повлиять на производительность веб-сайта — например, сайт не запомнит ваши данные для входа, когда вы вернетесь.

      "Это очень похожая концепция, – – сказал Нгуен. «Приложения хотят знать о вас как можно больше. Они хотят создать цифровой профиль."

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

      Как отключить отслеживание приложений с помощью устройств Apple iOS:

      • Зайдите в настройки.
      • Затем перейдите в раздел "Конфиденциальность".
      • Затем выберите "Отслеживание".
      • После этого вы можете отключить отслеживание всех приложений или разрешить только определенным приложениям получать ваши данные.

      На iPhone вы можете перейти в приложение "Настройки", чтобы настроить параметры конфиденциальности. На странице «Конфиденциальность» есть параметр «Отслеживание», при выборе которого вы перейдете на другую страницу, чтобы настроить приложения, отслеживающие вашу информацию. На странице отслеживания вы можете нажать кнопку-переключатель, чтобы включить или отключить отслеживание для всех приложений или только для некоторых приложений. СЕГОДНЯ Иллюстрация

      "Чтобы вы знали, они знают ваш возраст, они знают, какое устройство вы используете, они знают ваш пол, ваше имя пользователя, ваши пароли. Так что у других компаний есть много информации о вас», — сказал Нгуен об этих деталях. «Теперь вы сможете вернуть себе этот контроль, если захотите».

      А если вы используете устройство Android, убедитесь, что у вас установлена ​​последняя версия операционной системы, чтобы на панели управления конфиденциальностью были доступны лучшие элементы управления.

      Читайте также: