Το στοιχείο σάς επιτρέπει να ενσωματώσετε άλλες ιστοσελίδες απευθείας στην ιστοσελίδα σας. Αλλά όταν χρησιμοποιείτε iframes υπάρχουν ορισμένα ζητήματα ασφάλειας και σχεδίασης που δεν αντιμετωπίστηκαν στο HTML 4.01. Το HTML5 φέρνει σε αυτό το στοιχείο τρία νέα χαρακτηριστικά για να αντιμετωπίσει αυτές τις ανησυχίες:
Το χαρακτηριστικό του sandbox
ο sandbox
χαρακτηριστικό του IFRAME
στοιχείο είναι ένα πολύ χρήσιμο χαρακτηριστικό ασφαλείας των iframes. Όταν το τοποθετείτε σε ένα IFRAME
στοιχείο, καθοδηγείτε τον πράκτορα χρήστη να αποκλείσει λειτουργίες που ενδέχεται να θέσουν σε κίνδυνο την ασφάλεια του ιστότοπου και των χρηστών του.
Για παράδειγμα:
sandbox = "" >
Ενημερώνει το πρόγραμμα περιήγησης να αποκλείει όλες τις λειτουργίες που ενδέχεται να αποτελούν κίνδυνο ασφαλείας. Συγκεκριμένα, τα πρόσθετα δεν επιτρέπονται. Τα έντυπα δεν μπορούν να υποβληθούν. Οι δέσμες ενεργειών Sscripts δεν θα εκτελούνται και οι συνδέσεις εκτός του IFRAME
δεν επιτρέπονται. Τέλος, δεν επιτρέπεται η πρόσβαση σε cookies, τοπικό αποθηκευτικό χώρο και άλλες σελίδες στον ίδιο τομέα (προέλευση).
Στη συνέχεια, χρησιμοποιώντας το sandbox
τις τιμές λέξεων-κλειδιών, μπορείτε να ενεργοποιήσετε ξανά ορισμένες από τις λειτουργίες. Αυτές οι λέξεις-κλειδιά είναι:
αδειοδότησης
-Από μορφή υποβολήςεπιτρέψτε-ίδιας προέλευσης
-Διαγραφή σε δέσμες ενεργειών για πρόσβαση σε περιεχόμενο όπως cookies από τον ίδιο τομέα προέλευσηςεπιτρέψτε-scripts
-Διαγραφή σεναρίων για εκτέλεση σε αυτόIFRAME
επιτρεπόμενη πλοήγηση
-Παρακαλώ τοIFRAME
συνδέσεις και δέσμες ενεργειών στο_μπλουζα
στόχος
Δεν είναι καλή ιδέα να ορίσετε και τα δύο επιτρέψτε-scripts
και επιτρέψτε-ίδιας προέλευσης
λέξεις-κλειδιά μαζί για την ίδια IFRAME
. Εάν το κάνετε αυτό, τότε η ενσωματωμένη σελίδα μπορεί να αφαιρέσει πλήρως το sandbox
αποδίδουν οφέλη ασφαλείας.
Το χαρακτηριστικό srcdoc
ο srcdoc
χαρακτηριστικό είναι ένα χαρακτηριστικό που δίνει στον σχεδιαστή του Web μεγαλύτερο έλεγχο στα iframes καθώς και περισσότερη ασφάλεια. Αντί να συνδεθεί με μια ιστοσελίδα σε διαφορετική διεύθυνση URL, ο σχεδιαστής του ιστού τοποθετεί το HTML που πρόκειται να εμφανιστεί σε ένα IFRAME
μεσα στην srcdoc
Χαρακτηριστικό.
Αρχικά, ίσως να σκεφτόμαστε: "Πώς είναι αυτό διαφορετικό από το να βάλεις την HTML δεξιά στη σελίδα;" Και με κάποιους τρόπους, δεν είναι τρομερά διαφορετικό. Αλλά πρέπει να έχετε κατά νου μια από τις λειτουργίες του IFRAME
στοιχείο, το οποίο είναι η διατήρηση μη αξιόπιστων δεδομένων ξεχωριστά από την υπόλοιπη τοποθεσία.
Τοποθετώντας την HTML που δημιουργείται από μια μη αξιόπιστη πηγή, όπως μια φόρμα, σε ένα IFRAME
μπορείτε να "sandbox" το μη αξιόπιστο περιεχόμενο και να το εμφανίσετε στη σελίδα. Τα σχόλια του Blog είναι ένα παράδειγμα. Τα περισσότερα blog έχουν μόνο περιορισμένο αριθμό ετικετών HTML που μπορούν να χρησιμοποιήσουν οι σχολιαστές στα σχόλιά τους. Αλλά με την τοποθέτηση αυτών των σχολίων σε ένα sandboxed IFRAME
χρησιμοποιώντας το srcdoc
χαρακτηριστικό, τα σχόλια μπορούν να είναι πιο ισχυρά ενώ ταυτόχρονα προστατεύουν το χώρο ως σύνολο.
Ασφάλεια και Iframes
Τα παραπάνω δύο χαρακτηριστικά παρέχουν ασφάλεια για σας IFRAME
στοιχεία, αλλά δεν είναι απόδειξη σε όλους τους κακόβουλους ιστότοπους. Εάν ο κακόβουλος ιστότοπος μπορεί να πείσει έναν χρήστη να έχει άμεση πρόσβαση στο εχθρικό περιεχόμενο (όπως πληκτρολογώντας τη διεύθυνση URL στο πρόγραμμα περιήγησης), μπορούν ακόμα να επιτεθούν.
Εάν είναι δυνατόν, είναι καλύτερο να ορίσετε το περιεχόμενο που βρίσκεται μέσα στο sandboxed IFRAME
ως κείμενο / html-sandboxed
Τύπος MIME.
Το απρόσκοπτο χαρακτηριστικό
ο χωρίς ραφή
attribute είναι ένα χαρακτηριστικό boolean που λέει στο πρόγραμμα περιήγησης να εμφανίσει το IFRAME
σαν να ήταν μέρος του γονικού εγγράφου. Αν θέλετε IFRAME
για να εμφανίσετε απρόσκοπτα, απλά να συμπεριλάβετε αυτό το χαρακτηριστικό στο στοιχείο:
χωρίς ραφή >
Αλλά κάνοντας το IFRAME
απρόσκοπτη είναι κάτι περισσότερο από το βλέμμα, είναι επίσης το πώς η σελίδα αλληλεπιδρά με το πλαίσιο. Για παράδειγμα:
- Σύνδεσμοι στο
IFRAME
θα ανοίξει στο γονικό παράθυρο, εκτός αν τοIFRAME
σελίδα έχει το στόχο_ΕΑΥΤΟΣ
σειρά. - CSS στο
IFRAME
θα προστεθούν στον καταρράκτη ολόκληρου του εγγράφου. - Το ριζικό στοιχείο του
IFRAME
η σελίδα θεωρείται παιδί τουIFRAME
. - Το πλάτος και το ύψος του
IFRAME
ρυθμίζονται με τρόπο παρόμοιο με τον τρόπο με τον οποίο θα οριστούν άλλα στοιχεία σε επίπεδο μπλοκ. - Όταν το γονικό έγγραφο προβάλλεται από ένα εργαλείο απόδοσης ομιλίας όπως ένα πρόγραμμα ανάγνωσης οθόνης, το
IFRAME
θα διαβαστεί χωρίς να το αναγγείλει ως ξεχωριστό έγγραφο. - Οποιεσδήποτε δέσμες ενεργειών στο γονικό έγγραφο θα επηρεάσουν το
IFRAME
έγγραφο με τον ίδιο τρόπο. Για παράδειγμα, αν ένα σενάριο περιέχει όλα τα πλαίσια στη σελίδα, οι σύνδεσμοι στοIFRAME
θα αναφέρονται επίσης.
Με άλλα λόγια, το χωρίς ραφή
attribute αποδίδει πολύ περισσότερα από την απλή αφαίρεση των ορίων από το IFRAME
. Εάν πρόκειται να ορίσετε ένα IFRAME
για να είναι απρόσκοπτη, θα πρέπει να είστε πολύ σίγουροι για το περιεχόμενο, ώστε να μην προσθέτετε κανένα κίνδυνο ασφαλείας στον ιστότοπό σας, ενσωματώνοντας έναν κακόβουλο ιστότοπο.