Я сделал запрос POST на сайт HTTP (не HTTPS), проверил запрос в Chrome Developer Tools и обнаружил, что он добавил свой собственный заголовок перед отправкой на сервер:
Upgrade-Insecure-Requests: 1
После выполнения поиска Upgrade-Insecure-Requests
я могу только найти информацию о сервере, отправляющем этот заголовок:
Content-Security-Policy: upgrade-insecure-requests
Это кажется связанным, но все же сильно отличающимся, поскольку в моем случае КЛИЕНТ отправляет заголовок в Запросе , тогда как вся информация, которую я нашел, касается СЕРВЕРА, отправляющего связанный заголовок в Ответе .
Так почему же Chrome (44.0.2403.130 m) добавляет Upgrade-Insecure-Requests
к моему запросу и что он делает?
Обновление 2016-08-24:
Этот заголовок с тех пор был добавлен как Рекомендация кандидата W3C и теперь официально признан.
Для тех, кто только что столкнулся с этим вопросом и смущен, превосходный ответ Саймона Востока это хорошо объясняет.
Upgrade-Insecure-Requests: 1
Заголовок , используемый как HTTPS: 1
в предыдущей W3C Working Draft и был переименован спокойно на Chrome до изменения стало официально принято.
(Этот вопрос задавался во время этого перехода, когда не было официальной документации по этому заголовку, и Chrome был единственным браузером, который отправил этот заголовок.)
Ответы:
Краткий ответ: он тесно связан с
Content-Security-Policy: upgrade-insecure-requests
заголовком ответа, указывая на то, что браузер его поддерживает (и на самом деле предпочитает).Это заняло у меня 30 минут поиска в Google, но я наконец нашел его в спецификации W3.
Путаница возникает из-за того, что заголовок в спецификации был
HTTPS: 1
, и именно так Chromium реализовал его, но после того, как это сломало множество плохо кодированных веб-сайтов (особенно WordPress и WooCommerce), команда Chromium извинилась:Их исправление состояло в том, чтобы переименовать его
Upgrade-Insecure-Requests: 1
, и спецификация с тех пор была обновлена, чтобы соответствовать.Во всяком случае, вот объяснение из спецификации W3 (как оно появилось в то время) ...
источник
a.com
и перенаправлю васb.com
, предоставив этот заголовокb.com
и отправив некоторую информацию. Если вы не находитесь в безопасном каналеb.com
, уже может произойти нюхательная атака, потому что я отправил данныеb.com
вместе с моим запросом. Можете ли вы привести нас к простому сценарию, как сделать соединения более безопасными для пользователей?Это объясняет все это:
Источник: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests
источник