Aby zabezpieczyć się przed atakami, deweloper musi usunąć luki w zabezpieczeniach i dodać do aplikacji funkcje zabezpieczeń. Na szczęście przeglądarka oferuje wiele funkcji zabezpieczeń. Niektóre z nich są dostępne dla deweloperów, a inne domyślnie włączone, aby chronić użytkowników.
Koncepcja „piaskownicy”
Nowoczesne przeglądarki bazują na koncepcji „piaskownicy”. Piaskownica to mechanizm zabezpieczający używany do uruchamiania aplikacji w środowisku z ograniczonym dostępem. Tak jak w fizycznej piaskownicy na placu zabaw, w której dzieci mogą tworzyć, co tylko zechcą, w obrębie granic bez bałaganu, kod aplikacji może działać w obrębie ograniczonego środowiska. Na przykład JavaScript może dodawać i modyfikować elementy strony, ale może mieć ograniczony dostęp do zewnętrznego pliku JSON. Wynika to z funkcji piaskownicy o nazwie „Same-origin”.
Dlaczego piaskownica jest niezbędna?
Każdego dnia użytkownicy internetu pobierają dowolny kod i wielokrotnie uruchamiają go na komputerze lub telefonie. Gdyby ktoś powiedział Ci „Hej! „Pobierz i uruchom tę aplikację!”, możesz się zastanowić, czy aplikacja pochodzi z zaufanego źródła, przeczytać informacje u dostawcy aplikacji lub dokładnie sprawdzić recenzje. A co, jeśli ktoś wyśle Ci URL z treścią „Sprawdź tego posta na blogu”? Prawdopodobnie klikniesz go bez pytania w rodzaju „Jakiego rodzaju JavaScriptu zostanie pobrana ta witryna?”.
Piaskownica przeglądarki to kluczowa funkcja, która sprawia, że przeglądanie sieci jest płynniejsze, ponieważ bezpieczniej jest uruchamiać dowolny kod.
Bezpieczeństwo przede wszystkim
Czy jeśli przeglądarka umieszcza każdą aplikację w piaskownicy, czy powinniśmy też zadbać o jej bezpieczeństwo? Zdecydowanie tak.
Przede wszystkim funkcje piaskownicy nie stanowią idealnej tarczy. Chociaż inżynierowie przeglądarek ciężko pracują, przeglądarki mogą mieć luki w zabezpieczeniach, a hakerzy zawsze próbują ominąć piaskownicę (np. za pomocą Spectre Attack).
Czasem piaskownica może utrudniać korzystanie z internetu. Przeglądarka może na przykład zablokować żądanie pobierania obrazu hostowanego w innej domenie. Możesz udostępniać zasoby w różnych domenach, włączając udostępnianie zasobów między serwerami z różnych domen (CORS). Jeśli nie zrobisz tego wystarczająco ostrożnie, możesz udostępnić zasób wszystkim użytkownikom internetu, co zasadniczo cofniesz działanie piaskownicy.
Podsumowanie
Bezpieczne środowisko internetowe można osiągnąć tylko wtedy, gdy zabezpieczenia są wbudowane w projekt aplikacji, a dopracowany projekt zaczyna się od zrozumienia istniejących funkcji. Kolejne 2 przewodniki szczegółowo opisują zasady dotyczące CORS i tego samego pochodzenia.