Przed wprowadzeniem HTML5, ustawienie kodowania znaków w dokumencie z elementem wymagało napisania nieco szczegółowej linii widocznej poniżej. To są elementy Meta Charset, jeśli używałeś HTML4 na swojej stronie internetowej:
Ważne jest, aby zauważyć w tym kodzie cudzysłowy, które widzisz wokół zawartość atrybut: zawartość="tekst/html; zestaw znaków=izo-8859-1". Podobnie jak wszystkie atrybuty HTML, te cudzysłowy definiują wartość atrybutu, wskazując, że cały ciąg tekst/html; zestaw znaków=izo-8959-1 jest zawartość tego pierwiastka. To jest poprawny HTML i tak miał być napisany ten ciąg. Jest też nieporęczny, długi i brzydki! Nie jest to również coś, co prawdopodobnie zapamiętasz z czubka głowy!
W większości przypadków twórcy stron internetowych musieliby skopiować i wkleić ten kod z jednej witryny do każdej nowej, którą opracowywali, ponieważ napisanie tego od zera wymagało wiele.
HTML5 eliminuje dodatkowe „rzeczy”
HTML5 nie tylko dodał kilka nowych elementów do języka, ale także znacznie uprościł składnię HTML, w tym element Meta Charset. Dzięki HTML5 możesz dodać kodowanie znaków z dużo łatwiejszą do zapamiętania składnią dla for
META element, który widzisz poniżej:Porównaj tę uproszczoną składnię z tym, co napisaliśmy na początku tego artykułu, starą składnią używaną w HTML4, a zobaczysz, o ile łatwiej jest napisać i zapamiętać wersję HTML5. Zamiast kopiować i wklejać to z istniejącej witryny do nowej, nad którą pracowałeś, jest to absolutnie coś, co jako front-endowy programista internetowy możesz zapamiętać. Ta oszczędność czasu może nie być duża, ale biorąc pod uwagę inne obszary składni, które uprościły HTML5, oszczędności się sumują!
Zawsze dołączaj kodowanie znaków
Zawsze powinieneś uwzględniać kodowanie znaków na swoich stronach internetowych, nawet jeśli nigdy nie zamierzasz używać żadnego znaki specjalne. Jeśli nie dodasz kodowania znaków, Twoja witryna stanie się podatna na atak cross-site scripting przy użyciu UTF-7.
W tym scenariuszu osoba atakująca widzi, że Twoja witryna nie ma zdefiniowanego kodowania znaków, więc nakłania przeglądarkę do myślenia, że kodowanie znaków na stronie to UTF-7. Następnie atakujący wstrzykuje na stronę internetową skrypty zakodowane w UTF-7, a Twoja witryna zostaje zhakowana. Jest to problematyczne dla wszystkich zaangażowanych osób, od Twojej firmy po odwiedzających. Dobrą wiadomością jest to, że jest to prosty problem, którego należy unikać – pamiętaj, aby dodać kodowanie znaków do wszystkich swoich stron internetowych.
Gdzie dodać kodowanie znaków
Kodowanie znaków na stronie internetowej powinno być pierwszym wierszem kodu HTML
element. Zapewnia to, że przeglądarka wie, jakie jest kodowanie znaków, zanim zrobi na stronie cokolwiek innego niż określenie typu dokumentu i zidentyfikowanie, że jest to strona HTML. Twój kod HTML powinien brzmieć:
...
Używanie nagłówków HTTP dla dodatkowego bezpieczeństwa Extra
Możesz także określić kodowanie znaków w nagłówkach HTTP. Jest to nawet bezpieczniejsze niż dodawanie go do strony HTML, ale musisz mieć dostęp do konfiguracji serwera lub .htaccess plików, co oznacza, że być może będziesz musiał współpracować z dostawcą hostingu swojej witryny, aby uzyskać ten rodzaj dostępu lub poprosić go o wprowadzenie zmian dla ty. Dostęp jest tutaj wyzwaniem. Sama zmiana jest prosta, więc każdy dostawca hostingu powinien być w stanie dokonać tej zmiany ze względną łatwością.
Jeśli używasz Apache, możesz ustawić domyślny zestaw znaków dla całej witryny, dodając: AddDefaultCharset UTF-8 do twojego korzenia .htaccess plik. Domyślny zestaw znaków Apache to ISO-8859-1.