Saya memuat beberapa HTML ke iframe tetapi ketika file yang direferensikan menggunakan http, bukan https, saya mendapatkan kesalahan berikut:
[diblokir] Halaman di {current_pagename} menjalankan konten tidak aman dari {referenced_filename}
Apakah ada cara untuk mematikan ini atau cara untuk mengatasinya?
Iframe tidak memiliki src
atribut dan konten diatur menggunakan:
frame.open();
frame.write(html);
frame.close();
Jawaban:
Berdasarkan generalitas dari pertanyaan ini, saya pikir, bahwa Anda perlu mengatur proxy HTTPS Anda sendiri pada beberapa server online. Lakukan langkah-langkah berikut:
Jika Anda hanya mengunduh konten situs jarak jauh melalui file_get_contents atau serupa, Anda masih dapat memiliki tautan tidak aman ke konten. Anda harus menemukannya dengan regex dan juga mengganti. Gambar sulit dipecahkan, tetapi Ï menemukan solusi di sini: http://foundationphp.com/tutorials/image_proxy.php
sumber
Solusi terbaik yang saya buat adalah cukup menggunakan google sebagai ssl proxy ...
Diuji dan bekerja di firefox.
Metode lain:
Gunakan pihak ketiga seperti embed.ly (tapi itu benar-benar hanya baik untuk http API terkenal).
Buat skrip pengalihan Anda sendiri pada halaman https yang Anda kontrol (pengalihan javascript sederhana pada halaman yang terhubung relatif harus melakukan trik. Sesuatu seperti: (Anda dapat menggunakan langauge / metode)
https://example.com
Itu memiliki iframe yang menghubungkan ke ...https://example.com/utilities/redirect.html
Yang memiliki skrip pengalihan js sederhana seperti ...document.location.href ="http://thenonsslsite.com";
Atau, Anda dapat menambahkan umpan RSS atau menulis pembaca / pengurai untuk membaca situs http dan menampilkannya di dalam situs https Anda.
Anda dapat / sebaiknya juga merekomendasikan kepada pemilik situs http bahwa mereka membuat koneksi ssl. Jika tanpa alasan lain selain meningkatkan seo .
Kecuali Anda dapat membuat pemilik situs http untuk membuat sertifikat ssl, solusi paling aman dan permanen adalah membuat umpan RSS yang mengambil konten yang Anda butuhkan (mungkin Anda sebenarnya tidak 'melakukan' apa pun di situs http -yaitu untuk katakanlah tidak masuk ke sistem apa pun).
Masalah sebenarnya adalah bahwa memiliki elemen http di dalam situs https merupakan masalah keamanan. Tidak ada cara yang benar-benar halal di sekitar risiko keamanan ini sehingga hal di atas hanyalah pekerjaan saat ini.
Perhatikan, bahwa Anda dapat menonaktifkan langkah keamanan ini di sebagian besar browser (sendiri, bukan untuk orang lain). Perhatikan juga bahwa 'peretasan' ini mungkin menjadi usang seiring berjalannya waktu.
sumber
Saya tahu ini adalah posting lama, tetapi solusi lain adalah dengan menggunakan CURL, misalnya:
redirect.php:
lalu di tag iframe Anda, sesuatu seperti:
Ini hanya contoh MINIMAL untuk mengilustrasikan ide - itu tidak membersihkan URL, juga tidak akan mencegah orang lain menggunakan redirect.php untuk tujuan mereka sendiri. Pertimbangkan hal-hal ini dalam konteks situs Anda sendiri.
Sisi baiknya adalah lebih fleksibel. Misalnya, Anda dapat menambahkan beberapa validasi dari $ data yang dikeriting untuk memastikan itu benar-benar yang Anda inginkan sebelum menampilkannya - misalnya, tes untuk memastikan itu bukan 404, dan memiliki konten pengganti yang siap Anda sendiri jika itu adalah.
Plus - Saya sedikit lelah mengandalkan pengalihan Javascript untuk hal-hal penting.
Bersulang!
sumber
example.com
yang memiliki SSL. Saya menyematkan iframe denganexample.net
yang tidak memiliki SSL. Theexample.com
memiliki link sepertihref="https://stackoverflow.com/path/file.html"
dan sementara mengklik, itu adalah membuka sebagaihttps://example.com/path/file.html
bukanhttp://example.net/path/file.html
tambahkan
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
kepalasumber
Anda akan selalu mendapatkan peringatan tentang konten yang diblokir di sebagian besar browser saat mencoba menampilkan konten yang tidak aman di halaman https. Ini rumit jika Anda ingin menyematkan hal-hal dari situs lain yang tidak ketinggalan ssl. Anda dapat mematikan peringatan atau menghapus pemblokiran di browser Anda sendiri tetapi bagi pengunjung lain itu adalah masalah.
Salah satu cara untuk melakukannya adalah dengan memuat sisi server konten dan menyimpan gambar dan hal-hal lain ke server Anda dan menampilkannya dari https.
Anda juga dapat mencoba menggunakan layanan seperti embed.ly dan mendapatkan konten melalui mereka. Mereka memiliki dukungan untuk mendapatkan konten di balik https.
sumber
Menggunakan Google sebagai proxy SSL tidak berfungsi saat ini,
Mengapa?
Jika Anda membuka halaman apa pun dari google, Anda akan menemukan ada
x-frame-options
bidang di header.(Kutipan dari MDN)
Salah satu solusinya
Di bawah ini adalah pekerjaan saya untuk masalah ini:
Unggah konten ke AWS S3, dan itu akan membuat tautan https untuk sumber.
Perhatikan: atur izin ke file html untuk memungkinkan semua orang melihatnya.
Setelah itu, kita dapat menggunakannya sebagai
src
iframe di situs web https.sumber
Anda dapat mencoba mengikis apa pun yang Anda butuhkan dengan PHP atau bahasa sisi server lain, lalu meletakkan iframe ke konten yang dikikis. Berikut ini contoh dengan PHP:
scrapedcontent.php:
index.html:
sumber
Yang perlu Anda lakukan hanyalah menggunakan Google sebagai server Proxy.
https://www.google.ie/gwt/x?u=[AndaHttpLink] .
Ini berhasil untuk saya.
Kredit: - https://www.wikihow.com/Use-Google-As-a-Proxy
sumber
Gunakan proksi balik HTTPS-ke-HTTP Anda sendiri.
Jika use case Anda adalah tentang beberapa, jarang mengubah URL untuk dimasukkan ke dalam
iframe
, Anda hanya dapat mengatur proxy terbalik untuk ini di server Anda sendiri dan mengkonfigurasinya sehingga satuhttps
URL di server Anda memetakan ke satuhttp
URL di server proksi. Karena proxy terbalik sepenuhnya berada di sisi server, browser tidak dapat menemukan bahwa itu "hanya" berbicara ke proxy situs web asli, dan karenanya tidak akan mengeluh karena koneksi ke proxy menggunakan SSL dengan benar.Jika misalnya Anda menggunakan Apache2 sebagai server web Anda, maka lihat instruksi ini untuk membuat proxy terbalik.
sumber
mitmproxy
adalah alat debugging, bukan sistem proksi produksi.ngrok
adalah layanan tunneling, sebagian besar untuk server pengembangan, saya tidak mengerti bagaimana ini bisa berguna untuk ini.