Element umożliwia osadzanie innych stron internetowych bezpośrednio na stronie internetowej. Ale przy korzystaniu z elementów iframe istnieją pewne problemy z bezpieczeństwem i projektowaniem, które nie zostały omówione w HTML 4.01. HTML5 wprowadza trzy nowe atrybuty tego elementu, aby pomóc rozwiązać te problemy:
Atrybut piaskownicy
The piaskownica
atrybut IFRAME
element jest bardzo przydatną funkcją zabezpieczeń elementów iframe. Kiedy umieścisz go w IFRAME
element, instruujesz klienta użytkownika, aby nie zezwalał na funkcje, które mogą stanowić zagrożenie dla bezpieczeństwa witryny i jej użytkowników.
Na przykład:
sandbox = "" >
Informuje przeglądarkę, aby nie zezwalała na wszystkie funkcje, które mogą stanowić zagrożenie bezpieczeństwa. W szczególności wtyczki są niedozwolone. Formularzy nie można przesyłać. Sscripts nie będzie działał, a linki poza nim IFRAME
niedozwolone. Wreszcie, dostęp do plików cookie, lokalnego magazynu i innych stron w tej samej domenie (pochodzenia) jest niedozwolony.
Następnie za pomocą piaskownica
wartości słów kluczowych, możesz ponownie włączyć niektóre funkcje. Te słowa kluczowe to:
allow-forms
- przesłanie formularzazezwalaj na to samo źródło
-Jakie skrypty, aby uzyskać dostęp do treści, takich jak pliki cookie z tej samej domeny początkowejzezwalaj na skrypty
-Jeszcze skrypty do uruchomienia w tymIFRAME
allow-top-navigation
-LubićIFRAME
linki i skrypty do_Top
cel
Nie jest dobrym pomysłem ustawienie obu zezwalaj na skrypty
i zezwalaj na to samo źródło
słowa kluczowe razem na tym samym IFRAME
. Jeśli to zrobisz, osadzona strona może wtedy całkowicie usunąć piaskownica
atrybut, negując wszelkie korzyści bezpieczeństwa.
Atrybut srcdoc
The srcdoc
atrybut to atrybut, który daje projektantowi sieci Web większą kontrolę nad ramkami iframe, a także zwiększa bezpieczeństwo. Zamiast łączenia się ze stroną internetową pod innym adresem URL projektant stron internetowych umieszcza kod HTML, który ma być wyświetlany IFRAME
w środku srcdoc
atrybut.
Na początku możesz pomyśleć: "Jak to jest inaczej niż umieszczanie kodu HTML na stronie?". Pod pewnymi względami nie jest to strasznie odmienne. Ale musisz pamiętać o jednej z funkcji IFRAME
element, który ma przechowywać niezaufane dane oddzielnie od reszty strony.
Umieszczając kod HTML utworzony przez niezaufane źródło, na przykład formularz, w pliku IFRAME
możesz "piaskować" niezaufaną zawartość i nadal wyświetlać ją na stronie. Komentarze na blogu są przykładem. Większość blogów ma tylko ograniczoną liczbę znaczników HTML, których komentatorzy mogą używać w swoich komentarzach. Ale umieszczając te komentarze w piaskownicy IFRAME
używając srcdoc
atrybut, komentarze mogą być bardziej niezawodne, a jednocześnie chronić witrynę jako całość.
Zabezpieczenia i ramki iframe
Powyższe dwa atrybuty zapewniają bezpieczeństwo Twoim IFRAME
elementy, ale nie są one dowodem przeciwko wszystkim złośliwym stronom. Jeśli złośliwa strona może przekonać użytkownika do bezpośredniego dostępu do wrogiej treści (na przykład poprzez wpisanie adresu URL w przeglądarce), może zostać zaatakowana.
Jeśli to możliwe, najlepiej ustawić zawartość piaskownicy IFRAME
jako text / html-sandboxed
Typ MIME.
Bezproblemowy atrybut
The bezszwowy
atrybut to atrybut boolowski, który informuje przeglądarkę, aby wyświetliło się IFRAME
tak jakby był częścią dokumentu nadrzędnego. Jeśli chcesz IFRAME
Aby wyświetlać płynnie, po prostu dołącz ten atrybut do elementu:
bezszwowy >
Ale zrobienie IFRAME
bezszwowe to coś więcej niż tylko wygląd, to także sposób interakcji strony z ramką. Na przykład:
- Łącza w
IFRAME
otworzy się w oknie nadrzędnym, chyba żeIFRAME
strona ma cel_SAMEGO SIEBIE
zestaw. - CSS w
IFRAME
zostanie dodany do kaskady całego dokumentu. - Główny element
IFRAME
strona jest uważana za dzieckoIFRAME
. - Szerokość i wysokość
IFRAME
są ustawione w podobny sposób, jak ustawiono inne elementy blokowe. - Kiedy dokument nadrzędny jest oglądany przez narzędzie do renderowania mowy, takie jak czytnik ekranu, znak
IFRAME
byłby czytany bez ogłaszania go jako oddzielnego dokumentu. - Wszelkie skrypty w dokumencie macierzystym wpłynęłyby na
IFRAME
dokumentować w ten sam sposób. Na przykład, jeśli skrypt zawiera wszystkie klatki na stronie, łącza wIFRAME
również zostaną wymienione.
Innymi słowy, bezszwowy
atrybut ma o wiele więcej niż tylko usunięcie granic z IFRAME
. Jeśli masz zamiar ustawić IFRAME
aby być płynnym, powinieneś być bardzo pewny zawartości, aby nie dodawać żadnego zagrożenia bezpieczeństwa do swojej witryny poprzez osadzanie złośliwej strony.