Chrome добавляет странный заголовок HTTPS: 1 ко всем запросам

11488
TwoDiv

Я получаю много странных ошибок на сайтах, связанных с HTTPS. Эти сайты прекрасно работают в FF и IE, но не загружаются в Chrome. Похоже, что хотя я запрашиваю незащищенный URL (http), Google Chrome добавляет дополнительный заголовок HTTPS:1к запросу.

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

Я не перенаправлен на защищенную страницу (HTTPS), скорее все внутренние URL в источнике редактируются в https.

Я проверил соединение с Fiddler. Этот анализ не выполняется на моем компьютере, и единственным отличием является этот HTTPS:1заголовок.

Я создал простую страницу PHP, которая печатает $_SERVERпеременную. Когда я к нему доступ с хромом я вижу: [HTTP_HTTPS] => 1. Я не могу видеть это с FireFox.

Я попытался очистить все данные, отключить Chrome из моей учетной записи Google, а также удалить и установить Chrome с нуля.

У кого-нибудь есть идеи по этому поводу? Это сводит меня с ума.

17
Да, я тоже это вижу, начиная со вчерашнего дня. Сводит меня с ума тоже. Kirby 8 лет назад 0
У меня была такая же проблема с Chrome Canary, но только на конкретном сайте, где я дурачился с http-> https перенаправлениями. Я думаю, это как-то связано с 301 кешем перенаправления. Chrome не перенаправил меня на https после полной очистки кэша браузера. Однако это не решает проблему заголовка https. Я «решил» это, больше не используя канарейку для конкретного сайта. Сегодня та же самая проблема снова началась на хромированной стабильной НО НЕ на канарейке больше. Я думаю, что кеш на канарейке истек. Я не проверял это в течение некоторого времени. Выглядит совершенно случайно для меня. Извините, что не дал вам ответ. Но, так как я Azeruel 8 лет назад 0
Хром очень, очень агрессивен, когда дело доходит до безопасности. Google, вероятно, делает это по деловым причинам: если он не может защитить пользовательские данные от правительственных субъектов, пользователи очень быстро потеряют свою веру в Google. Таким образом, Google считает первоочередной задачей стать лидером в области конфиденциальности в Интернете, несмотря на то, что его бизнес-модель, основанная на рекламе, полностью основана на отслеживании поведения пользователей. Пользователи доверяют Google быть надежным хранителем своих персональных данных, не допускать утечки данных посторонним лицам, поэтому они не могут позволить себе делать что-то меньшее. bwDraco 8 лет назад 0

4 ответа на вопрос

14
Kirby

Most likely those sites that you are having problems with are running server code that incorrectly interprets the HTTPS: 1 request header. For example the Wordpress WooCommerce plugin, which is running on about 900,000 sites, has buggy code that incorrectly handles the HTTPS: 1 header. See their latest patch document here: https://woocommerce.wordpress.com/2015/07/07/woocommerce-2-3-13-security-and-maintenance-release/

There is a similar post on StackOverflow: https://stackoverflow.com/questions/31565155/wordpress-woocommerce-forces-https-when-it-shouldnt/31570584#31570584

To give more detail: Chrome has implemented the Upgrade Insecure Requests specification from the World Wide Web Consortium (W3C). Section 3.2.1 of that specification is The Upgrade-Insecure-Requests HTTP Request Header Field which states

3.2.1. The Upgrade-Insecure-Requests HTTP Request Header Field

The Upgrade-Insecure-Requests HTTP request header field sends a signal to the server expressing the client’s preference for an encrypted and authenticated response, and that it can successfully handle the upgrade-insecure-requests directive in order to make that preference as seamless as possible to provide.

This preference is represented by the following ANBF:

"Upgrade-Insecure-Requests:" *WSP "1" *WSP

Sites like those running the WooCommerce plugin in Wordpress are incorrectly rewriting all the URLs in the response as https:\\ links if the HTTPS: 1 header was set in a non-secure (http) request.

As an end user of that site, the only easy work around is to use a browser other than Chrome until those web sites are repaired

Спасибо за подробный ответ, я видел, что этот код был реализован, но так как эта проблема характерна для моего компьютера (я проверил на разных компьютерах в офисе), я предполагаю, что есть способ отключить это. Другие компьютеры не отправляют заголовок HTTPS: 1, это специфично для моего компьютера TwoDiv 8 лет назад 0
Это не относится к вашему компьютеру. Я предполагаю, что другие пользователи еще не обновили Chrome до последней версии. Kirby 8 лет назад 1
вау это будет потенциально большой проблемой для WooCommerce. Я управляю двумя отдельными (не включенными https) сайтами на Woo и только что исправил их с помощью выпущенного ими исправления, однако я могу представить, что многие владельцы магазинов жалуются на это! lisburnite 8 лет назад 0
Я думаю, что это не только проблема WooCommerce, но и то, как Сервер читает заголовки. В своей работе мы используем SSL без нагрузки и параметр HTTP-Proto, чтобы сервер знал, поступил ли запрос в HTTPS. Сервер получает простой HTTP-запрос и анализирует его, как если бы он был HTTPS. Я предполагаю, что это та же проблема, и если конфигурация сервера не разрешает HTTPS, не имеет SSL или использует разные папки для http и https - они вылетят TwoDiv 8 лет назад 0
@lisburnite вы используете коммерческие сайты, которые не обслуживаются по HTTPS? Вы, вероятно, должны дать своим клиентам некоторую защиту и исправить это ... Ashley Steel 8 лет назад 3
@AshleySteel Я планирую, они оба являются относительно новыми сайтами, и приоритет был в том, чтобы сначала их запустить. Просто жду, когда оба клиента купят SSL-сертификаты, и я их получу. lisburnite 8 лет назад 0
4
TwoDiv

Видимо ошибка в версии 44, похоже, исправлена ​​в последнем обновлении. Я сейчас использую 44.0.2403.107, и проблема, кажется, ушла.

Более подробная информация здесь: http://www.zdnet.com/article/brand-new-chrome-44-release-added-a-bug/

3
Any

its more than just wocommerce, its all of wordpress that is going haywire causing bad css, images and etc.

add this to near the top of your wp-config.php to remove it

if($_SERVER['HTTP_HTTPS'] && !$_SERVER['HTTPS']) { unset($_SERVER['HTTP_HTTPS']); } 
@ любая тогда админка не сработает. Dhruv Kapatel 8 лет назад 0
используя его на многих сайтах, которые вчера сломались, без проблем Any 8 лет назад 0
1
Aley

Вы можете попробовать это, чтобы сбросить HTTP_HTTPSзаголовок.

if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') { unset($_SERVER['HTTP_HTTPS']); }