Slik tillater du http-innhold i en iframe på et https-nettsted

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.

Kommentarer (17)

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.

Kommentarer (1)

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:

Kommentarer (3)