Pengguna menyumbangkan gambar di situs HTTPS tanpa peringatan konten campuran

9

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?

DisgruntledGoat
sumber
2
Anda bisa menggunakan camo ...
wb9688
2
Google belum menyelesaikan ini untuk pencarian gambar. Pencarian gambar "tidak aman:" i.imgur.com/8XVTQsi.png
Stephen Ostermiller
2
Lihat juga di StackOverflow: Berurusan dengan konten HTTP di halaman HTTPS
Stephen Ostermiller
1
Lebih baik saya tidak tahu, dan itu mungkin bertentangan dengan undang-undang hak cipta, tetapi satu solusi teknis adalah membuat salinan gambar dan melayani dari domain di bawah kendali Anda, melalui HTTPS ...
a CVn
1
Cara orang miskin: Setelah menyimpan / mengedit Anda dapat menerapkan logika untuk menulis ulang semua data yang dimaksudkan untuk menjadi src="http://someimage.jpg"relatif terstruktur src="//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.".
dhaupin

Jawaban:

1

Tidak mungkin memiliki sumber daya tidak aman di halaman yang aman, dan tidak mendapatkan peringatan konten campuran.

Untuk agen pengguna yang mendukungnya, upgrade-insecure-requestsarahan 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.

Robert K. Bell
sumber
1

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:

  1. Jika gambarnya https, biarkan saja.
  2. Jika gambar adalah http dan dari situs yang dikenal mendukung https (mis. Situs saya sendiri, imgur.com dll) kemudian tulis ulang ke https.
  3. Kalau tidak, jika gambar adalah http, tulis ulang untuk digunakan 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.

DisgruntledGoat
sumber