Chrome aggiunge strano HTTPS: 1 intestazione a tutte le richieste


19

Ho riscontrato molti strani errori sui siti Web correlati a HTTPS. Questi siti funzionano alla grande in FF e IE, ma non riescono a caricarsi in Chrome. Sembra che anche se sto richiedendo un URL non protetto (http), Google Chrome aggiunge un'intestazione aggiuntiva HTTPS:1alla richiesta.

Ciò fa sì che alcuni server, probabilmente alcuni che utilizzano SSL offload e forniscono un hosting condiviso, rispondano con un errore poiché non esiste SSL sul server.

Non vengo reindirizzato a una pagina protetta (HTTPS), ma tutti gli URL interni nella sorgente vengono modificati in https.

Ho verificato la connessione con il violinista. Questa analisi non viene eseguita sul mio computer e l'unica differenza è questa HTTPS:1intestazione.

Ho creato una semplice pagina PHP che stampa la $_SERVERvariabile. Quando accedo con cromo posso vedere: [HTTP_HTTPS] => 1. Non riesco a vederlo con FireFox.

Ho provato a cancellare tutti i dati, annullare l'accoppiamento di Chrome dal mio account Google e rimuovere e installare Chrome da zero.

Qualcuno ha qualche idea su questo? Mi sta facendo impazzire.


Ho avuto lo stesso problema su Chrome Canary, ma solo su un sito specifico in cui mi sono imbrogliato con i reindirizzamenti http-> https. Immagino che abbia qualcosa a che fare con la cache di reindirizzamento 301. Chrome non mi ha reindirizzato a https dopo aver cancellato completamente la cache del browser. Tuttavia, non risolve il problema dell'intestazione https. L'ho "risolto" non usando più canarino per il sito specifico. Oggi lo stesso problema è ricominciato sulla scuderia cromata MA NON più sul canarino. Suppongo che la cache su Canary sia scaduta. Non l'ho provato per un po 'di tempo. Sembra del tutto casuale per me. Ci scusiamo per non averti dato una risposta. Ma, da quando
Azeruel il

Sì, lo vedo anche a partire da ieri. Mi sta facendo impazzire anche.
Kirby,

Chrome è molto, molto aggressivo quando si tratta di sicurezza. Probabilmente Google lo sta facendo per motivi di lavoro: se non è in grado di proteggere i dati degli utenti contro attori governativi, gli utenti perderanno la loro fiducia in Google molto rapidamente. Pertanto, Google considera affermarsi come leader nella privacy di Internet una priorità assoluta, nonostante il fatto che il suo modello di business basato sulla pubblicità si basi completamente sul monitoraggio comportamentale dell'utente. Gli utenti si fidano di Google per essere un amministratore sicuro dei propri dati personali, per non divulgare i dati a terze parti non autorizzate, quindi non possono permettersi di fare di meno.
bwDraco - Ripristina Monica il

Risposte:


15

Molto probabilmente quei siti con cui si verificano problemi eseguono codice server che interpreta erroneamente l' HTTPS: 1intestazione della richiesta. Ad esempio il plugin Wordpress WooCommerce, che è in esecuzione su circa 900.000 siti , ha un codice errato che gestisce erroneamente l' HTTPS: 1intestazione. Vedi il loro ultimo documento patch qui: https://woocommerce.wordpress.com/2015/07/07/woocommerce-2-3-13-security-and-maintenance-release/

C'è un post simile su StackOverflow: /programming/31565155/wordpress-woocommerce-forces-https-when-it-shouldnt/31570584#31570584

Per fornire maggiori dettagli: Chrome ha implementato la specifica Upgrade Insecure Requests del World Wide Web Consortium (W3C). La sezione 3.2.1 di tale specifica è il campo dell'intestazione della richiesta HTTP Upgrade-Insecure-Requests che indica

3.2.1. Il campo Intestazione richiesta HTTP Upgrade-Insecure-Requests

Il campo di intestazione della richiesta HTTP Upgrade-Insecure-Requests invia un segnale al server che esprime la preferenza del client per una risposta crittografata e autenticata e che può gestire correttamente la direttiva upgrade-insecure-request al fine di rendere tale preferenza il più fluida possibile fornire.

Questa preferenza è rappresentata dal seguente ANBF:

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

Siti come quelli che eseguono il plug-in WooCommerce in Wordpress riscrivono erroneamente tutti gli URL nella risposta come https:\\collegamenti se l' HTTPS: 1intestazione è stata impostata in una richiesta non sicura (http).

Come utente finale di quel sito, l'unica soluzione è utilizzare un browser diverso da Chrome fino a quando tali siti Web non vengono riparati


Grazie per la risposta elaborata, ho visto che questo codice è stato implementato, ma poiché questo problema è specifico per il mio computer (ho verificato con diversi computer in ufficio) presumo che ci sia un modo per disattivarlo. Altri computer non inviano l'header HTTPS: 1, è specifico per il mio computer
TwoDiv

1
Non è specifico per il tuo computer. Sto indovinando che gli altri utenti non hanno aggiornato all'ultima versione di Chrome, ma
Kirby

wow questo sarà un grosso problema per WooCommerce. Gestisco due siti separati (non abilitati per HTTPS) su Woo e li ho appena corretti con la correzione che hanno rilasciato, ma posso immaginare molti proprietari di negozi che si lamentano di questo!
Lisburnite,

Penso che non sia solo un problema di WooCommerce, ma piuttosto il modo in cui il server legge le intestazioni. Nel mio lavoro, utilizziamo SSL Off-load e utilizziamo il parametro HTTP-Proto per far sapere al server se la richiesta è arrivata in HTTPS. Il server riceve una semplice richiesta HTTP e la analizza come se fosse HTTPS. Presumo che questo sia lo stesso problema e se la configurazione del server non consente HTTPS, non dispone di SSL o utilizza cartelle diverse per http e https, andranno in crash
TwoDiv

3
@lisburnite stai gestendo siti commerciali che non sono serviti tramite HTTPS? Probabilmente dovresti proteggere i tuoi clienti e risolverli ...
Ashley,


3

è più di un semplice wocommerce, è tutto un wordpress che va in tilt causando cattivi css, immagini ed ecc.

aggiungilo vicino alla parte superiore del tuo wp-config.php per rimuoverlo

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

@ Qualsiasi pannello di amministrazione non funzionerà.
Dhruv Kapatel,

usandolo su molti siti web che si sono aperti ieri, senza problemi
Qualsiasi

1

Puoi provare questo, per annullare l' HTTP_HTTPSintestazione.

if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') {
    unset($_SERVER['HTTP_HTTPS']);
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.