Halaman HTTPS yang memuat skrip melalui HTTP membuat dua permintaan dengan dua tingkat perlindungan berbeda, dan gembok hanya menjelaskan yang pertama. Terowongan tidak mengubahnya, karena ia melindungi pembawanya, bukan skema sumber daya itu sendiri. Peramban sudah memberi tahu Anda permintaan mana yang gagal, jika Anda membaca konsol alih-alih bilah alamat. Tiga pemeriksaan membawa Anda dari halaman yang setengah berfungsi menuju perbaikan yang sesungguhnya.

Baca permintaannya, bukan bilah alamatnya

Dokumen yang diambil melalui HTTPS dapat merujuk skrip, lembar gaya, font, atau bingkai melalui HTTP biasa. Rujukan itu adalah permintaan tersendiri, dan itulah yang dikeluhkan peramban. Perlindungan dokumen utama tidak merambat ke dalamnya, dan terowongan yang membawa kedua aliran tidak mengubah satu pun skema. Karena itu halaman dapat sekaligus benar-benar aman dan benar-benar rusak.

Menyebut sumber daya itu sekadar berkas yang disertakan tidak membuat penggantiannya menjadi tidak berbahaya.

Jika konten skrip yang tidak aman dapat diubah saat transit lalu dijalankan, ia dapat mengubah perilaku halaman, dan itu masalah yang lebih besar daripada kegagalan kosmetik. Gambar membawa risiko yang lebih kecil tetapi nyata ketika diubah di tengah jalan. Gembok tidak berbohong tentang apa pun. Ia menjawab pertanyaan yang lebih sempit daripada yang Anda ajukan kepadanya.

Ketahui sumber daya mana yang diblokir dan mana yang dinaikkan

Peramban tidak memperlakukan setiap jenis sumber daya dengan cara yang sama. panduan konten campuran memisahkan permintaan yang dinaikkan ke HTTPS dari permintaan yang diblokir sepenuhnya, dengan skrip, lembar gaya, dan permintaan programatik berada di sisi yang diblokir, sementara gambar dan media dapat dinaikkan atau ditandai sebagai gantinya.

Perbedaan itulah yang menjelaskan laporan yang membingungkan. Halaman dengan skrip yang diblokir kehilangan sebuah fitur sepenuhnya, sedangkan halaman dengan gambar yang dinaikkan tampak baik-baik saja dan diam-diam telah mengubah permintaannya. Kategori yang didokumentasikan juga memiliki pengecualian, jadi jangan menganggap setiap URL dari jenis tertentu akan berhasil dinaikkan. Bacalah apa yang dikatakan konsol tentang permintaan tertentu alih-alih menalar dari ekstensi berkas.

Widget yang diblokir bukan bukti bahwa terowongannya gagal. Itu bukti bahwa peramban menjalankan tugasnya.

Perbaiki referensinya di sumbernya

Bagi pemilik situs, perbaikan berada di tempat URL yang tidak aman ditulis: templat, lembar gaya, skrip yang menyusun URL, atau komponen pihak ketiga. Mengubah alamat halaman yang terlihat membuat semua itu tidak tersentuh. Telusuri sumbernya untuk menemukan host dan perbaiki setiap rujukan, bukan hanya satu yang kebetulan disebut konsol.

Lalu pastikan sumber daya itu benar-benar disajikan melalui HTTPS dengan identitas yang sah, karena pergantian skema tidak dapat memunculkan layanan yang tidak pernah diterbitkan di sana.

grep -rn "http://assets.example" ./templates
curl -sSI https://assets.example/widget.js | head -n 1

Ikuti juga pengalihan, karena rujukan yang dimulai dengan HTTPS masih dapat mendarat di jalur pengiriman teks terbuka. Bila sebuah dependensi memang tidak memiliki pengiriman aman, hapus atau ganti melalui proses perubahan biasa alih-alih mengirim solusi sementara. Bagi pengguna, biarkan perlindungan peramban tetap aktif dan laporkan URL sumber daya, jenisnya, dan pesan konsol kepada pemilik situs. Jangan pernah menyebarkan instruksi yang meminta staf mengizinkan konten tidak aman untuk satu halaman, karena pengecualian itu bertahan lebih lama daripada insiden yang memicunya.

Uji ulang halaman sebagaimana pengguna menyentuhnya

Latih operasi yang memuat sumber daya sesuai permintaan, bukan hanya dokumen pertama. Halaman mengambil kode, data, dan unduhan tambahan setelah tombol ditekan, dan permintaan itu sering kali yang tidak aman. Pastikan permintaan tertentu dan perilaku yang terlihat dengan perlindungan masih aktif. Uji yang dimulai dengan profil peramban yang dilonggarkan tidak dapat menunjukkan kepada Anda apa yang dilihat pengguna biasa.

Terowongan tetap punya tugasnya sendiri, dan tugas itu adalah akses jaringan, bukan integritas halaman.

Begitu lalu lintas meninggalkan titik akhir terowongan, setiap pengambilan HTTP yang tersisa tidak memperoleh apa pun dari pembawanya. Perbaiki jalur sumber dayanya dan pertahankan penegakan di peramban. Memperlakukan satu lapisan transportasi lagi sebagai perbaikan bagi dependensi yang tidak aman adalah cara sebuah tim berakhir dengan skrip meja bantuan yang menonaktifkan kontrol yang sebenarnya bekerja dengan benar.

Artikel terkait