Aby chronić się przed atakami, deweloper musi ograniczyć luki w zabezpieczeniach i dodać do aplikacji funkcje zabezpieczeń. Na szczęście przeglądarka internetowa udostępnia wiele funkcji zabezpieczeń. Niektóre z nich są dostępne dla deweloperów, którzy mogą je włączyć, a inne są domyślnie włączone, aby chronić użytkowników.
Koncepcja „piaskownicy”
Nowoczesne przeglądarki internetowe są oparte na koncepcji „piaskownicy”. Piaskownica to mechanizm zabezpieczeń służący do uruchamiania aplikacji w ograniczonym środowisku. Podobnie jak w przypadku piaskownicy na placu zabaw, gdzie dzieci mogą tworzyć wszystko, co chcą, w określonych granicach, nie brudząc przy tym innych miejsc, kod aplikacji może być wykonywany w ograniczonym środowisku. Na przykład JavaScript może dodawać i modyfikować elementy na stronie, ale może mieć ograniczony dostęp do zewnętrznego pliku JSON. Wynika to z funkcji piaskownicy o nazwie „same-origin”.
Dlaczego piaskownica jest potrzebna?
Użytkownicy internetu codziennie pobierają dowolny kod i wielokrotnie uruchamiają go na komputerze lub telefonie. Jeśli ktoś powiedział Ci „Hej! Pobierz i uruchom tę aplikację!”, możesz się zastanowić, czy pochodzi ona z zaufanego źródła, zapoznać się z informacjami o dostawcy aplikacji lub dokładnie sprawdzić opinie. A co, jeśli ktoś wyśle Ci adres URL z prośbą o sprawdzenie wpisu na blogu? Prawdopodobnie klikniesz go bez zadawania pytań typu „Jakiego rodzaju JavaScript pobierze ta strona?”.
Piaskownica przeglądarki to kluczowa funkcja, która ułatwia przeglądanie internetu, ponieważ umożliwia bezpieczne uruchamianie dowolnego kodu.
Zaprojektuj je z myślą o bezpieczeństwie
Jeśli przeglądarka umieszcza każdą aplikację internetową w piaskownicy, czy powinniśmy się w ogóle przejmować bezpieczeństwem? Zdecydowanie tak.
Po pierwsze, funkcje piaskownicy nie są idealną ochroną. Chociaż inżynierowie przeglądarek ciężko pracują, przeglądarki mogą mieć luki w zabezpieczeniach, a osoby przeprowadzające ataki zawsze próbują obejść piaskownicę (np. za pomocą ataku Spectre).
Piaskownica może czasami utrudniać tworzenie świetnych stron internetowych. Przeglądarka może na przykład zablokować żądanie pobrania obrazu hostowanego w innej domenie. Możesz udostępniać zasoby w różnych domenach, włączając Cross-Origin Resource Sharing (w skrócie CORS), ale jeśli nie zrobisz tego ostrożnie, możesz udostępnić zasób wszystkim innym użytkownikom internetu, co w zasadzie zniweczy działanie piaskownicy.
Podsumowanie
Bezpieczeństwo w internecie można osiągnąć tylko wtedy, gdy jest ono wbudowane w projekt aplikacji. Solidny projekt zaczyna się od zrozumienia istniejących funkcji. W kolejnych 2 przewodnikach szczegółowo omawiamy CORS i zasadę dotyczącą tego samego pochodzenia.