Ответ 1
Это еще не реализовано. Там обсуждение здесь: https://bugzilla.mozilla.org/show_bug.cgi?id=446344
Я изучаю идею HTTP Origin, проверяя, как защита CSRF для Drupal на https://www.drupal.org/node/1803712
Теперь я тестировал, как заголовок Origin поступает с запросом POST, но Firefox не отправляет заголовок Origin при представлении формы входа пользователя. Хром и Chrome работают нормально, они отправляют заголовок Origin.
Версия Firefox - 36.0.1. Я также тестировал чистую установку Firefox, потому что я думал, что некоторые из моих плагинов браузера подавляют заголовок Origin, но не удастся - там тоже заголовок Origin.
Есть ли страница документации, которая описывает, когда Firefox отправляет заголовок Origin, а когда нет?
Это еще не реализовано. Там обсуждение здесь: https://bugzilla.mozilla.org/show_bug.cgi?id=446344
По умолчанию в Firefox не отправляется HTTP_ORIGIN.
Причина заключается в ошибке, которая приводит к зависанию некоторых мобильных версий Firefox, если включена переменная конфигурации network.http.sendOriginHeader
(доступная через about:config
). (Подробнее см. https://developer.mozilla.org/en-US/Firefox/Experimental_features#Security и ссылку, предоставленную комментарием Марко https://bugzilla.mozilla.org/show_bug.cgi?id=446344.)
Есть предложение включить FF отправку HTTP_ORIGIN по умолчанию, но список TODO длинный (см. https://bugzilla.mozilla.org/show_bug.cgi?id=1424076). Так что, вероятно, потребуются годы, прежде чем FF отправит HTTP_ORIGIN, даже если код Javascript не включит CSRF.
Некоторые ОС FOSS предварительно конфигурируют свои порты FF для отправки HTTP_ORIGIN по умолчанию. Кстати, MS Edge также не отправляет HTTP_ORIGIN без явного включения CSRF с использованием Javascript.
По этой причине я реализовал настройку безопасности моего сайта, которая позволяет пользователям запрещать транзакции POST из браузеров, которые не предоставляют HTTP_ORIGIN.