Skip to main content

Zrozumienie nowych elementów "IFRAME" w HTML5

Technologie tworzenia stron WWW: HTML5, Adobe Flash, Muse, Edge, webdesign responsywny - webinar (Może 2025)

Technologie tworzenia stron WWW: HTML5, Adobe Flash, Muse, Edge, webdesign responsywny - webinar (Może 2025)
Anonim

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 formularza
  • zezwalaj na to samo źródło-Jakie skrypty, aby uzyskać dostęp do treści, takich jak pliki cookie z tej samej domeny początkowej
  • zezwalaj na skrypty-Jeszcze skrypty do uruchomienia w tym IFRAME
  • 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 że IFRAME 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 dziecko IFRAME.
  • 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 w IFRAME 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.