Φορτώνω κάποια HTML σε ένα iframe, αλλά όταν ένα αρχείο στο οποίο γίνεται αναφορά χρησιμοποιεί http και όχι https, λαμβάνω το ακόλουθο σφάλμα:
[blocked] Η σελίδα στο {current_pagename} έτρεξε μη ασφαλές περιεχόμενο από το {referenced_filename}
Υπάρχει κάποιος τρόπος να το απενεργοποιήσω αυτό ή κάποιος τρόπος να το παρακάμψω;
Το iframe δεν έχει το χαρακτηριστικό src
και τα περιεχόμενα ορίζονται με τη χρήση:
frame.open();
frame.write(html);
frame.close();
Σημείωση: Ενώ αυτή η λύση μπορεί να λειτουργούσε σε ορισμένα προγράμματα περιήγησης όταν γράφτηκε το 2014, δεν λειτουργεί πλέον. Η πλοήγηση ή η ανακατεύθυνση σε μια διεύθυνση URL HTTP σε ένα
iframe
ενσωματωμένο σε μια σελίδα HTTPS δεν επιτρέπεται από τα σύγχρονα προγράμματα περιήγησης, ακόμη και αν το πλαίσιο ξεκίνησε με μια διεύθυνση URL HTTPS.
Η καλύτερη λύση που δημιούργησα είναι απλά να χρησιμοποιήσετε το google ως ssl proxy...
https://www.google.com/search?q=%http://yourhttpsite.com&btnI=Im+Feeling+Lucky
Δοκιμάστηκε και λειτουργεί στο firefox.
Άλλες μέθοδοι:
ly (αλλά είναι πραγματικά καλό μόνο για γνωστά APIs http).
Δημιουργήστε το δικό σας σενάριο ανακατεύθυνσης σε μια σελίδα https που ελέγχετε (μια απλή ανακατεύθυνση με javascript σε μια σχετική συνδεδεμένη σελίδα πρέπει να κάνει το κόλπο. Κάτι σαν: (μπορείτε να χρησιμοποιήσετε οποιαδήποτε γλώσσα/μέθοδο)
https://example.com
που έχει ένα iframe που συνδέει σε...
https://example.com/utilities/redirect.html
Το οποίο έχει ένα απλό js redirect script όπως...
document.location.href ="http://thenonsslsite.com";
Εναλλακτικά, θα μπορούσατε να προσθέσετε μια ροή RSS ή να γράψετε κάποιο πρόγραμμα ανάγνωσης/αντιμετώπισης για να διαβάζει τον ιστότοπο http και να τον εμφανίζει μέσα στον ιστότοπό σας https.
Θα μπορούσατε/θα έπρεπε επίσης να συστήσετε στον ιδιοκτήτη του http ιστότοπου να δημιουργήσει μια σύνδεση ssl. Αν όχι για κανέναν άλλο λόγο εκτός από το ότι αυξάνει το seo.
Εάν δεν μπορείτε να πείσετε τον ιδιοκτήτη του ιστότοπου http να δημιουργήσει ένα πιστοποιητικό ssl, η πιο ασφαλής και μόνιμη λύση θα ήταν να δημιουργήσετε μια ροή RSS που θα αρπάζει το περιεχόμενο που χρειάζεστε (υποθέτοντας ότι στην πραγματικότητα δεν 'κάνετε' τίποτα στον ιστότοπο http -δηλαδή δεν συνδέεστε σε κανένα σύστημα).
Το πραγματικό ζήτημα είναι ότι η ύπαρξη στοιχείων http μέσα σε έναν ιστότοπο https αποτελεί ζήτημα ασφάλειας. Δεν υπάρχουν απόλυτα kosher τρόποι για να παρακάμψετε αυτόν τον κίνδυνο ασφάλειας, οπότε τα παραπάνω είναι απλώς οι τρέχουσες λύσεις.
Σημειώστε, ότι μπορείτε να απενεργοποιήσετε αυτό το μέτρο ασφαλείας στα περισσότερα προγράμματα περιήγησης (εσείς, όχι για άλλους). Σημειώστε επίσης ότι αυτά τα 'hacks' μπορεί να ξεπεραστούν με την πάροδο του χρόνου.
Θα λαμβάνετε πάντα προειδοποιήσεις για μπλοκαρισμένο περιεχόμενο στα περισσότερα προγράμματα περιήγησης όταν προσπαθείτε να εμφανίσετε μη ασφαλές περιεχόμενο σε μια σελίδα https. Αυτό είναι δύσκολο αν θέλετε να ενσωματώσετε υλικό από άλλους ιστότοπους που δεν βρίσκονται πίσω από ssl. Μπορείτε να απενεργοποιήσετε τις προειδοποιήσεις ή να αφαιρέσετε το μπλοκάρισμα στο δικό σας πρόγραμμα περιήγησης, αλλά για τους άλλους επισκέπτες αποτελεί πρόβλημα.
Ένας τρόπος για να το κάνετε είναι να φορτώσετε το περιεχόμενο από την πλευρά του διακομιστή και να αποθηκεύσετε τις εικόνες και άλλα πράγματα στο διακομιστή σας και να τα εμφανίσετε από το https.
Μπορείτε επίσης να δοκιμάσετε να χρησιμοποιήσετε μια υπηρεσία όπως η embed.ly και να λάβετε το περιεχόμενο μέσω αυτής. Διαθέτουν υποστήριξη για τη λήψη του περιεχομένου πίσω από το https.
Θα μπορούσατε να δοκιμάσετε να σαρώσετε ό,τι χρειάζεστε με PHP ή άλλη γλώσσα διακομιστή, και στη συνέχεια να τοποθετήσετε το iframe στο περιεχόμενο που σαρώσατε. Εδώ είναι ένα παράδειγμα με PHP:
PHP: scrapedcontent.php:
<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>
index.html:
<iframe src="scrapedcontent.php"></iframe>