Saya memiliki forum di mana, seperti kebanyakan forum, pengguna dapat memposting gambar. Saya telah menyiapkan HTTPS di seluruh situs, tetapi tentu saja sebagian besar gambar eksternal ditautkan menggunakan HTTP, bukan HTTPS. Jadi memuat forum melalui HTTPS menunjukkan peringatan konten campuran, dll.
Apa sajakah strategi untuk mengatasi masalah ini? Beberapa gambar berasal dari situs saya sendiri sehingga saya dapat menulis ulang URL tersebut untuk menggunakan HTTPS karena saya tahu itu akan berfungsi. Tetapi untuk URL eksternal banyak yang tidak berfungsi dengan HTTPS jadi saya tidak dapat menulis ulang selimut.
Saya bisa menulis ulang gambar yang tidak aman ke tautan, bukan gambar sebaris, tapi itu tidak terlihat bagus dan mungkin membingungkan bagi pengguna. Ada solusi yang lebih baik?
src="http://someimage.jpg"
relatif terstruktursrc="//someimage.jpg"
sebagai gantinya ... atau hanya memvalidasinya. Jika Anda ingin kunci hijau yang ketat (di mana gambar tidak aman tidak akan membuka kunci Anda) menerapkan HSTS. Kemudian di antarmuka editor catat bahwa gambar saat ini harus tersedia melalui HTTPS, kalau tidak mereka tidak akan muncul sama sekali. Sesuatu seperti "Ups, Anda membuat kesalahan. Untuk mencegah penyalahgunaan dan serangan MITM, semua media harus menggunakan HTTPS. Kembali dan perbaiki, atau pilih penyedia gambar lain.".Jawaban:
Tidak mungkin memiliki sumber daya tidak aman di halaman yang aman, dan tidak mendapatkan peringatan konten campuran.
Untuk agen pengguna yang mendukungnya,
upgrade-insecure-requests
arahan adalah instruksi untuk mencoba memuat sumber daya di atas https atau gagal mencoba.Agen pengguna lain akan mengabaikan arahan, terus memuat sumber daya tidak aman.
Berikut adalah artikel di situs Google Developers yang membahas ini dan opsi lainnya.
sumber
Baru menyadari bahwa saya tidak pernah memposting solusi saya. The jawaban yang disediakan dalam komentar Stephen adalah apa yang dipecahkan itu untuk saya. Singkatnya, saya membuat skrip proxy yang melakukan hal berikut:
http://example.com/imgproxy?img=ORIGINALURL&hash=KEY
Kemudian skrip proksi mengambil gambar HTTP, menyimpannya secara lokal, dan menampilkan data gambar. Pada permintaan yang berulang-ulang itu akan mengeluarkan data yang di-cache secara langsung. Jawaban SO yang ditautkan menjelaskan hash keamanan dan detail lainnya.
sumber