Bir iframe'e bazı HTML'ler yüklüyorum ancak başvurulan dosya https değil http kullanıyorsa aşağıdaki hatayı alıyorum:
[engellendi] {current_pagename} adresindeki sayfa {referenced_filename} adresinden güvensiz içerik çalıştırdı
Bunu kapatmanın veya etrafından dolaşmanın herhangi bir yolu var mı?
İframein
src` niteliği yoktur ve içerik kullanılarak ayarlanır:
frame.open();
frame.write(html);
frame.close();
Not: Bu çözüm 2014 yılında yazıldığında bazı tarayıcılarda çalışmış olsa da artık çalışmıyor. HTTPS sayfasına gömülü bir
iframe
içinde bir HTTP URL'sine gitmeye veya yönlendirmeye, çerçeve bir HTTPS URL'si ile başlamış olsa bile modern tarayıcılar tarafından izin verilmez.
Oluşturduğum en iyi çözüm, google'ı ssl proxy olarak kullanmaktır...
https://www.google.com/search?q=%http://yourhttpsite.com&btnI=Im+Feeling+Lucky
Test edildi ve firefox'ta çalışıyor.
Diğer Yöntemler:
embed.ly gibi bir Üçüncü taraf kullanın (ancak bu gerçekten sadece iyi bilinen http API'leri için iyidir).
Kontrol ettiğiniz bir https sayfasında kendi yönlendirme betiğinizi oluşturun (göreceli bağlantılı bir sayfada basit bir javascript yönlendirmesi işinizi görecektir. Şunun gibi bir şey: (herhangi bir dil/yöntem kullanabilirsiniz)
"https://example.com" adresine bağlanan bir iframe var...
https://example.com/utilities/redirect.html
gibi basit bir js yönlendirme betiğine sahip olan...
document.location.href ="http://thenonsslsite.com";
Alternatif olarak, bir RSS beslemesi ekleyebilir veya http sitesini okumak ve https sitenizde görüntülemek için bir okuyucu / ayrıştırıcı yazabilirsiniz.
Ayrıca http site sahibine bir ssl bağlantısı oluşturmasını önerebilirsiniz/önermelisiniz. Başka bir sebep yoksa seo'yu artırır.
Http site sahibinin bir ssl sertifikası oluşturmasını sağlayamazsanız, en güvenli ve kalıcı çözüm, ihtiyacınız olan içeriği alan bir RSS beslemesi oluşturmak olacaktır (muhtemelen http sitesinde hiçbir şey yapmıyorsunuzdur - yani herhangi bir sisteme giriş yapmıyorsunuzdur).
Asıl sorun, bir https sitesinin içinde http öğelerinin bulunmasının bir güvenlik sorunu teşkil etmesidir. Bu güvenlik riskini aşmak için tamamen temiz bir yol yoktur, bu nedenle yukarıdakiler sadece mevcut çözümlerdir.
Bu güvenlik önlemini çoğu tarayıcıda devre dışı bırakabileceğinizi unutmayın (kendiniz için, başkaları için değil). Ayrıca, bu 'hack'lerin' zaman içinde geçerliliğini yitirebileceğini de unutmayın.
Bir https sayfasında güvenli olmayan içerik görüntülemeye çalıştığınızda çoğu tarayıcıda her zaman engellenmiş içerik uyarıları alırsınız. Bu, ssl arkasında olmayan diğer sitelerden bir şeyler yerleştirmek istiyorsanız zor bir durumdur. Kendi tarayıcınızda uyarıları kapatabilir veya engellemeyi kaldırabilirsiniz, ancak diğer ziyaretçiler için bu bir sorundur.
Bunu yapmanın bir yolu, içeriği sunucu tarafında yüklemek ve görüntüleri ve diğer şeyleri sunucunuza kaydetmek ve https'den görüntülemektir.
Ayrıca embed.ly gibi bir hizmet kullanmayı deneyebilir ve içeriği onlar aracılığıyla alabilirsiniz. İçeriği https arkasına almak için destekleri vardır.
PHP veya başka bir sunucu tarafı dili ile ihtiyacınız olan her şeyi kazımayı deneyebilir, ardından iframe'i kazınmış içeriğe yerleştirebilirsiniz. İşte PHP ile bir örnek:
scrapedcontent.php:
<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>
index.html:
<iframe src="scrapedcontent.php"></iframe>