В настоящее время я работаю над проектом Django1.11, я развернул свое приложение, используя nginx со схемой «https».Я хочу отправить форму, но не хочу ее повторять, поэтому я использовал шаблон POST / REDIRECT / GET.Все работает нормально и, как и ожидалось, в Mozilla и Chrome, то есть для вызова POST / REDIRECT / GET отобразит соответствующую веб-страницу. При перезагрузке и повторной отправке та же форма выдаст 403 доступа, который, как и ожидалось, будет отклонен.Проблема возникает только при тестировании того же представления в браузере Microsoft EDGE.При вызове метода POST / REDITECT / GET он напрямую выбрасывает 403. Причина 403 - REASON_NO_REFERER.Microsoft Edge пересылает пустой HTTP-реферер при использовании шаблона POST / REDIRECT / GET.
Я нашел патч для этого:
Добавить <meta name="referrer" content="origin-when-cross-origin" />
в <head>
шаблона HTML, и теперь он работаетхорошо для Edge также.Но все же, не знаю, что не так с Edge, если я не добавлю этот метатег в заголовок.Кроме того, вызывает ли это какие-либо уязвимости безопасности?
Джанго объяснил, почему проверка реферера является обязательной.
Suppose a user visits http://example.com/
# An active network attacker (man-in-the-middle, MITM) sends a
# POST form that targets https://example.com/detonate-bomb/ and
# submits it via JavaScript.
#
# The attacker will need to provide a CSRF cookie and token, but
# that's no problem for a MITM and the session-independent
# secret we're using. So the MITM can circumvent the CSRF
# protection. This is true for any HTTP connection, but anyone
# using HTTPS expects better! For this reason, for
# https://example.com/ we need additional protection that treats
# http://example.com/ as completely untrusted. Under HTTPS,
# Barth et al. found that the Referer header is missing for
# same-domain requests in only about 0.2% of cases or less, so we can use strict Referer checking.
, поэтому в таком случае это означает, что добавление мета в HTML является обязательным для подачиxyz-origin в HTTP-реферер?Если да, то вызывает ли это какие-либо уязвимости в безопасности для атаки «Человек в середине», поскольку у злоумышленника может быть также http-referer?
Я плохо разбираюсь в сетевой концепции, поэтому, пожалуйста, исправьте меня, если что-то отсутствует или неправильнос моей стороны.