Chrome додає дивні HTTPS: 1 заголовок до всіх запитів


19

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

Це призводить до того, що деякі сервери, ймовірно, деякі, які використовують вивантажений SSL та надають спільний хостинг, відповідають на помилку, оскільки на сервері немає SSL.

Мене не переспрямовують на захищену сторінку (HTTPS), швидше всі внутрішні URL-адреси в джерелі редагуються на https.

Я перевірив зв’язок із fiddler. Цей аналіз не проводиться на моєму комп'ютері, і різниця полягає лише в цьому HTTPS:1заголовку.

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

Я спробував очистити всі дані, від’єднати хром від свого облікового запису google та видалити та встановити Chrome з нуля.

Хтось має про це уявлення? Це зводить мене з розуму.


У мене був такий самий випуск щодо хромованої канарки, але лише на певному веб-сайті, де я обдурив перенаправлення http-> https. Я думаю, це має щось спільне з кешем переспрямування 301. Chrome не перенаправляв мене до https після очищення кеша повністю. Однак це не вирішує проблему заголовка https. Я "вирішив" це, більше не використовуючи канарку для конкретного сайту. Сьогодні ж випуск знову почався на хромовій стійці, АЛЕ НЕ на канарці. Я думаю, кеш на канарі закінчився. Я не тестував це деякий час. Для мене це виглядає абсолютно випадково. Вибачте за те, що не дали відповіді. Але, оскільки я
Азерюель

Так, я теж бачу це, починаючи з вчора. Зводить мене з розуму теж.
Кірбі

Chrome дуже і дуже агресивно стосується безпеки. Google, мабуть, робить це з бізнес-причин: якщо він не може захистити дані користувачів від державних акторів, користувачі втратять віру в Google дуже швидко. Отже, Google вважає утвердження себе лідером в галузі конфіденційності в Інтернеті головним пріоритетом, незважаючи на те, що його бізнес-модель на основі реклами повністю покладається на відстеження поведінки користувачів. Користувачі довіряють Google, що він є безпечним розпорядником своїх особистих даних, не випускає дані стороннім стороннім сторонам, тому вони не можуть дозволити собі робити щось менше.
bwDraco

Відповіді:


15

Швидше за все, на тих сайтах, з якими виникають проблеми, працює серверний код, який неправильно інтерпретує HTTPS: 1заголовок запиту. Наприклад, плагін Wordpress WooCommerce, який працює приблизно на 900 000 сайтах , має помилковий код, який неправильно обробляє HTTPS: 1заголовок. Перегляньте їх останній документ із виправленнями тут: https://woocommerce.wordpress.com/2015/07/07/woocommerce-2-3-13-security-and-maintenance-release/

У StackOverflow є аналогічна публікація: /programming/31565155/wordpress-woocommerce-forces-https-when-it-shouldnt/31570584#31570584

Щоб детальніше ознайомитись: Chrome реалізував специфікацію оновлених небезпечних запитів від Всесвітнього консорціуму веб-сторінок (W3C). Розділ 3.2.1 цієї специфікації В Upgrade-Незахищені-запити HTTP заголовка запиту поле в якому говориться ,

3.2.1. Поле Оновлення-небезпека-запит HTTP-заголовка запиту

Поле заголовка HTTP Upgrade-Insecure-Requests надсилає сигнал на сервер, в якому виражається перевага клієнта щодо зашифрованої та автентифікованої відповіді, і він може успішно обробляти директиву щодо оновлення-незахищених запитів, щоб зробити цю перевагу максимально бездоганною. забезпечувати.

Цей параметр представлений наступним ANBF:

"Оновлення-незахищеність-запити:" * WSP "1" * WSP

Такі сайти, як ті, на яких запущений плагін WooCommerce в Wordpress, неправильно переписують всі URL-адреси у відповідь у вигляді https:\\посилань, якщо HTTPS: 1заголовок був встановлений у незахищеному (http) запиті.

Як кінцевий користувач цього веб-сайту, єдиною легкою проблемою є використання браузера, окрім Chrome, до тих пір, поки ці веб-сайти не будуть відновлені


Дякую за розроблену відповідь, я бачив, що цей код був реалізований, але оскільки ця проблема є специфічною для мого комп'ютера (я перевірив різні комп’ютери в офісі), я припускаю, що є спосіб вимкнути це. Інші комп’ютери не надсилають заголовка HTTPS: 1, це специфічно для мого комп'ютера
TwoDiv

1
Це не характерно для вашого комп’ютера. Я здогадуюсь, що інші користувачі ще не оновлювалися до останньої версії хрому,
Kirby

ого, це буде потенційно великою проблемою для WooCommerce. Я запускаю два окремі (не ввімкнуті https) сайти в Woo, і я просто зафіксував їх виправленими ними виправленнями, проте я можу уявити, що багато власників магазинів скаржаться на цей!
lisburnite

Я думаю, що це не лише питання WooCommerce, а саме те, як Сервер читає заголовки. У своїй роботі ми використовуємо SSL із завантаженням, і ми використовуємо параметр HTTP-Proto, щоб повідомити сервер, чи надійшов запит у HTTPS. Сервер отримує простий HTTP-запит і аналізує його так, ніби це був HTTPS. Я припускаю, що це та сама проблема, і якщо конфігурація сервера не дозволяє HTTPS, не має SSL або використовувати різні папки для http та https - вони вийдуть з
ладу

3
@lisburnite Ви керуєте комерційними сайтами, які не подаються через HTTPS? Напевно, ви повинні надати своїм клієнтам певний захист і виправити це ...
Ешлі


3

його більше, ніж просто торгівля, її весь wordpress, який збирається сірий, спричиняючи поганий css, зображення та ін.

додайте це біля верхньої частини вашого wp-config.php, щоб видалити його

if($_SERVER['HTTP_HTTPS'] && !$_SERVER['HTTPS'])
{    unset($_SERVER['HTTP_HTTPS']);
}

@ будь-яка тоді адміністративна панель не буде працювати.
Друв Капатель

використовуючи його на багатьох веб-сайтах, які зламалися вчора, без проблем
Будь-який

1

Ви можете спробувати це, щоб скасувати HTTP_HTTPSзаголовок.

if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') {
    unset($_SERVER['HTTP_HTTPS']);
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.