Jeg laster inn HTML i en iframe, men når en fil det refereres til bruker http, ikke https, får jeg følgende feil:
[blokkert] Siden på {current_pagename} kjørte usikkert innhold fra {referenced_filename}.
Er det noen måte å slå dette av eller noen måte å omgå det på?
Iframen har ingen src
-attributt, og innholdet er angitt ved hjelp av:
frame.open();
frame.write(html);
frame.close();
Merk: Selv om denne løsningen kan ha fungert i noen nettlesere da den ble skrevet i 2014, fungerer den ikke lenger. Navigering eller omdirigering til en HTTP-nettadresse i en "iframe" som er innebygd i en HTTPS-side, er ikke tillatt i moderne nettlesere, selv om rammen startet med en HTTPS-nettadresse.
Den beste løsningen jeg laget er å bare bruke google som ssl-proxy ...
https://www.google.com/search?q=%http://yourhttpsite.com&btnI=Im+Feeling+Lucky
Testet og fungerer i firefox.
Andre metoder:
Bruk en tredjepart som embed.ly (men det er egentlig bare bra for kjente http API-er).
Lag ditt eget viderekoblingsskript på en https-side du kontrollerer (en enkel javascript-omdirigering på en relativ lenket side bør gjøre susen. Noe sånt som: (du kan bruke hvilket som helst språk/metode).
https://example.com
som har en iframe som lenker til...
https://example.com/utilities/redirect.html
Som har et enkelt js-omdirigeringsskript som...
document.location.href ="http://thenonsslsite.com";
Alternativt kan du legge til en RSS-feed eller skrive en leser/parser for å lese http-nettstedet og vise det på https-nettstedet ditt.
Du kan/bør også anbefale eieren av http-nettstedet å opprette en ssl-forbindelse. Om ikke av noen annen grunn enn det øker seo.
Med mindre du kan få eieren av http-nettstedet til å opprette et ssl-sertifikat, vil den sikreste og mest permanente løsningen være å opprette en RSS-feed som henter innholdet du trenger (antageligvis gjør du ikke noe på http-nettstedet - det vil si at du ikke logger deg på noe system).
Det virkelige problemet er at det å ha http-elementer på et https-nettsted representerer et sikkerhetsproblem. Det finnes ingen helt sikre måter å omgå denne sikkerhetsrisikoen på, så det ovennevnte er bare midlertidige løsninger.
Merk at du kan deaktivere dette sikkerhetstiltaket i de fleste nettlesere (for deg selv, ikke for andre). Vær også oppmerksom på at disse "hackene" kan bli foreldet over tid.
Du vil alltid få advarsler om blokkert innhold i de fleste nettlesere når du prøver å vise ikke-sikkert innhold på en https-side. Dette er vanskelig hvis du vil legge inn ting fra andre nettsteder som ikke bruker ssl. Du kan slå av advarslene eller fjerne blokkeringen i din egen nettleser, men for andre besøkende er det et problem.
En måte å gjøre det på er å laste inn innholdet på serversiden og lagre bildene og andre ting på serveren din og vise dem fra https.
Du kan også prøve å bruke en tjeneste som embed.ly og få innholdet gjennom dem. De har støtte for å få innholdet bak https.
Du kan prøve å skrape det du trenger med PHP eller et annet serversidespråk, og deretter legge iframen til det skrapede innholdet. Her er et eksempel med PHP:
scrapedcontent.php:
<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>
index.html:
<iframe src="scrapedcontent.php"></iframe>