Chrome menambahkan HTTPS aneh: 1 tajuk ke semua permintaan

19

Saya mendapatkan banyak kesalahan aneh pada situs web yang terkait dengan HTTPS. Situs-situs ini berfungsi baik di FF dan IE, tetapi gagal memuat di Chrome. Tampaknya meskipun saya meminta URL yang tidak aman (http), Google Chrome menambahkan header tambahan HTTPS:1untuk permintaan tersebut.

Ini menyebabkan beberapa server, mungkin beberapa yang menggunakan offload SSL dan menyediakan shared hosting, untuk merespons dengan kesalahan karena tidak ada SSL di server.

Saya tidak diarahkan ke halaman aman (HTTPS), melainkan semua URL internal di sumber sedang diedit ke https.

Saya sudah memeriksa koneksi dengan fiddler. Parsing ini tidak dibuat di komputer saya dan satu-satunya perbedaan adalah HTTPS:1header ini .

Saya telah membuat halaman PHP sederhana yang mencetak $_SERVERvariabel. Ketika saya mengaksesnya dengan chrome saya bisa melihat: [HTTP_HTTPS] => 1. Saya tidak bisa melihatnya dengan FireFox.

Saya telah mencoba menghapus semua data, melepaskan pasangan chrome dari akun google saya, dan menghapus dan menginstal Chrome dari awal.

Adakah yang tahu tentang ini? Ini membuatku gila.

TwoDiv
sumber
Saya memiliki masalah yang sama pada kenari krom, tetapi hanya pada situs tertentu di mana saya bermain-main dengan http-> https redirections. Saya kira itu ada hubungannya dengan 301 redirect cache. Chrome tidak mengarahkan saya ke https setelah cache browser lengkap dihapus. Namun itu tidak menyelesaikan masalah tajuk https. Saya "memecahkan" itu dengan tidak menggunakan kenari untuk situs tertentu lagi. Hari ini masalah yang sama mulai lagi pada chrome stable TAPI TIDAK di kenari lagi. Saya kira cache pada kenari sudah kadaluarsa. Saya belum mengujinya selama beberapa waktu. Terlihat benar-benar acak untukku. Maaf karena tidak memberi Anda jawaban. Tapi, sejak saya
Azeruel
Ya, saya melihat ini juga, mulai kemarin. Membuatku gila juga.
Kirby
Chrome sangat, sangat agresif dalam hal keamanan. Google mungkin melakukan ini karena alasan bisnis: jika tidak dapat mengamankan data pengguna terhadap aktor pemerintah, pengguna akan kehilangan kepercayaan mereka pada Google dengan sangat cepat. Karenanya, Google menganggap memantapkan dirinya sebagai pemimpin dalam privasi Internet sebagai prioritas utama, terlepas dari kenyataan bahwa model bisnis berbasis iklannya sangat bergantung pada pelacakan perilaku pengguna. Pengguna mempercayai Google sebagai pengawal yang aman untuk data pribadi mereka, untuk tidak membocorkan data ke pihak ketiga yang tidak sah, sehingga mereka tidak mampu melakukan hal yang kurang.
bwDraco

Jawaban:

15

Kemungkinan besar situs-situs yang Anda mengalami masalah menjalankan kode server yang salah menginterpretasikan HTTPS: 1tajuk permintaan. Misalnya plugin Wordpress WooCommerce, yang berjalan di sekitar 900.000 situs , memiliki kode buggy yang tidak benar menangani HTTPS: 1header. Lihat dokumen tambalan terbaru mereka di sini: https://woocommerce.wordpress.com/2015/07/07/woocommerce-2-3-13-security-and-maintenance-release/

Ada posting serupa di StackOverflow: /programming/31565155/wordpress-woocommerce-forces-https-when-it-shouldnt/31570584#31570584

Untuk memberikan lebih detail: Chrome telah menerapkan spesifikasi Permintaan Tidak Aman Upgrade dari World Wide Web Consortium (W3C). Bagian 3.2.1 dari spesifikasi tersebut adalah Bidang Header Permintaan HTTP Upgrade-Insecure-Requests yang menyatakan

3.2.1. Bidang Header Permintaan HTTP Peningkatan-Tidak Aman-Permintaan

Bidang tajuk Permintaan Upgrade-Tidak-Aman-Permintaan HTTP mengirimkan sinyal ke server yang menyatakan preferensi klien untuk respons terenkripsi dan terotentikasi, dan bahwa ia dapat berhasil menangani arahan permintaan-tidak-aman-permintaan upgrade untuk membuat preferensi tersebut semulus mungkin. untuk menyediakan.

Preferensi ini diwakili oleh ANBF berikut:

"Tingkatkan-Tidak-Aman-Permintaan:" * WSP "1" * WSP

Situs-situs seperti yang menjalankan plugin WooCommerce di Wordpress secara keliru menulis ulang semua URL dalam respons sebagai https:\\tautan jika HTTPS: 1header diatur dalam permintaan yang tidak aman (http).

Sebagai pengguna akhir situs itu, satu-satunya cara yang mudah untuk dilakukan adalah menggunakan browser selain Chrome sampai situs web tersebut diperbaiki

Kirby
sumber
Terima kasih atas jawaban yang terperinci, saya telah melihat bahwa kode ini diimplementasikan, tetapi karena masalah ini khusus untuk komputer saya (saya telah memeriksa dengan komputer yang berbeda di kantor) Saya berasumsi bahwa ada cara untuk mematikannya. Komputer lain tidak mengirim HTTPS: 1 tajuk, khusus untuk komputer saya
TwoDiv
1
Ini tidak spesifik untuk komputer Anda. Saya menduga bahwa pengguna lain belum memperbarui ke versi terbaru chrome,
Kirby
wow ini akan menjadi masalah yang berpotensi besar untuk WooCommerce. Saya menjalankan dua situs terpisah (non https diaktifkan) di Woo dan baru saja menambalnya dengan perbaikan yang telah mereka rilis namun saya dapat membayangkan banyak pemilik toko mengeluh tentang yang ini!
Lisburnite
Saya pikir itu bukan hanya masalah WooCommerce, tetapi mereka cara Server membaca header. Pada pekerjaan saya, kami menggunakan Off-load SSL, dan kami menggunakan parameter HTTP-Proto untuk memberi tahu server jika permintaan tiba di HTTPS. Server mendapat permintaan HTTP sederhana dan menguraikannya seolah-olah itu HTTPS. Saya berasumsi bahwa ini adalah masalah yang sama dan jika konfigurasi server tidak memungkinkan HTTPS, tidak memiliki SSL, atau menggunakan folder yang berbeda untuk http dan https - mereka akan macet
TwoDiv
3
@lisburnite Anda mengoperasikan situs komersial yang tidak dilayani melalui HTTPS? Anda mungkin harus memberi pelanggan Anda perlindungan dan memperbaikinya ...
Ashley
3

ini lebih dari sekadar wocommerce, semua wordpress-nya yang rusak menyebabkan css, gambar, dan sebagainya buruk.

tambahkan ini di dekat bagian atas wp-config.php Anda untuk menghapusnya

if($_SERVER['HTTP_HTTPS'] && !$_SERVER['HTTPS'])
{    unset($_SERVER['HTTP_HTTPS']);
}
Apa saja
sumber
@ apapun maka panel admin tidak akan berfungsi.
Dhruv Kapatel
menggunakannya di banyak situs web yang rusak kemarin, tanpa masalah
Any
1

Anda dapat mencoba ini, untuk menghapus HTTP_HTTPSheader.

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