Najbardziej zaawansowana aplikacja do ochrony cybernetycznej dla Androida - Bitdefender Mobile Security & Antivirus

Pobierz
Bitdefender
  • 0

Bezpieczeństwo w InternecieCiekawostki

CORS – czym jest i jak wpływa na nasze bezpieczeństwo?

Adam

Adam D

10 kwietnia 2024

CORS, czyli Cross-Origin Resource Sharing, to standard bezpieczeństwa, który umożliwia serwerom wskazanie źródeł, z których przeglądarki mogą żądać zasobów. Standard ten został stworzony w celu udoskonalenia polityki tego samego pochodzenia (SOP), której używają przeglądarki, aby uniemożliwić złośliwym aplikacjom dostęp do wrażliwych danych w domenach, których nie kontrolują.

Zespół do spraw cyberbezpieczeństwa

CORS ma bardzo duży wpływ na nasze bezpieczeństwo w sieci, więc zespół Bitdefender postanowił stworzyć artykuł, w którym przyjrzymy się temu, co to jest CORS i dlaczego jest dla nas tak istotny. Następnie przeanalizujemy korzyści i najlepsze praktyki dotyczące skutecznego wdrażania CORS.

Czym jest polityka tego samego pochodzenia (SOP)?

Aby zrozumieć, czym jest CORS, w pierwszej kolejności musimy zrozumieć politykę (SOP). Zasady tego samego pochodzenia (SOP) to funkcja zabezpieczeń przeglądarki, która ogranicza sposób uzyskiwania dostępu do zasobów przez różne aplikacje internetowe. Ta zasada wymaga, aby zasób pochodził z tego samego źródła, co aplikacja internetowa próbująca uzyskać do niego dostęp.

Aby dwa źródła zostały uznane za takie same, muszą mieć tego samego hosta, schemat i port. Weźmy na przykład ten adres URL: https://bitdefender.pl. Schemat to HTTPS, host to bitdefender.pl.

Pochodzenie ze schematem „http” to nie to samo, co skądinąd identyczne pochodzenie ze schematem „https”. Jednak https:/bitdefender.pl ma to samo pochodzenie co, https://bitdefender.pl/blog/, ponieważ mają ten sam schemat, host i port.

Chociaż SOP ogranicza dostęp do zasobów z różnych źródeł, jest bardziej liberalny w przypadku niektórych typów zasobów, w tym:

  • Obrazy: Strony internetowe mogą bez żadnych ograniczeń osadzać obrazy dowolnego pochodzenia.
  • Arkusze stylów CSS: Zewnętrzny CSS można załadować na stronę internetową, używając znacznika linku bezpośrednio w kodzie HTML lub reguły @import w innym pliku arkusza stylów.
  • Skrypty: Pliki JavaScript można ładować i wykonywać z dowolnego źródła, ale mogą one uzyskiwać dostęp do elementów DOM i manipulować nimi tylko ze źródła, w którym zostały załadowane. Podlegają one ograniczeniom SOP i nie mogą wykonywać zewnętrznych wywołań API między źródłami.
  • Pliki multimedialne: Pliki audio i wideo można osadzać i odtwarzać z różnych źródeł za pomocą znaczników video lub audio.
  • Ramki iframe: Osadzone ramki iframe mogą ładować treść z dowolnego źródła, ale SOP izoluje zawartość ramki iframe od zawartości strony nadrzędnej. Element iframe może komunikować się ze swoją stroną nadrzędną za pomocą interfejsu udostępnianego przez JavaScript, ale nie ma bezpośredniego dostępu do zasobów strony nadrzędnej, ponieważ nie mają one tego samego źródła.

Jak działa Cross Origin?

Chociaż polityka tego samego pochodzenia, która jest ściśle zaimplementowana po stronie klienta, ustala domyślne ograniczenie dostępu do niektórych zasobów, CORS umożliwia serwerom hostującym te zasoby określenie, komu chcą przyznać dostęp. Zastępuje zatem ograniczenia nałożone w ramach SOP na te zasoby. CORS wykorzystuje nagłówki żądań i odpowiedzi HTTP do komunikacji z serwerem zasobów i uzyskiwania od niego pozwolenia.

Żądania CORS – co to i dlaczego są konieczne?

Istnieją dwa podstawowe typy żądań CORS: żądania proste i żądania inspekcji wstępnej.

Proste żądania to żądania CORS wysyłane jako część głównego żądania HTTP. Aby proste żądanie zostało wysłane do serwera, muszą zostać spełnione następujące kryteria:

  • Żądanie musi używać metody GET, HEAD lub POST HTTP.
  • Nagłówki żądań muszą być prostymi nagłówkami, czyli nagłówkami HTTP, które mogą być bezpiecznie ustawiane automatycznie przez programy użytkownika.
  • Jeśli żądanie korzysta z metody POST, która wskazuje, że żądanie ma treść żądania, nagłówek Content-Type musi mieć wartość „application/x-www-form-urlencoded, multipart/form-datalub text/plain.”

Żądania wstępne są znacznie bardziej złożone niż proste. Stosuje się je, gdy:

  • Oryginalne żądanie wykorzystuje metodę inną niż GET, HEAD lub POST. Zazwyczaj w tych żądaniach używane są metody DELETE i PUT.
  • Oryginalne żądanie używa typów zawartości innych niż „application/x-www-form-urlencoded, multipart/form-datalub text/plain” w żądaniach POST.
  • Przeglądarka wysyła do serwera żądanie wstępnej inspekcji dotyczące wszelkich działań powodujących mutację danych. Dzieje się tak, ponieważ żądania aktualizacji danych nie są uważane za bezpieczne, więc przeglądarka najpierw sprawdza, czy serwer zezwala na CORS, zanim sama wyśle żądanie.

Żądanie wstępnej kontroli wykorzystuje metodę HTTP OPTIONS w celu potwierdzenia, że serwer zezwoli na pierwotne żądanie. Przeglądarka zawiera także następujące nagłówki z żądaniami inspekcji wstępnej:

  • Access-Control-Request-Method: Ten nagłówek zawiera metodę HTTP, która będzie używana, gdy przeglądarka wyśle rzeczywiste żądanie. Mówi serwerowi, czego się spodziewać, gdy zostanie złożone prawdziwe żądanie.
  • Access-Control-Request-Headers: To jest lista nagłówków, które zostaną wysłane wraz z rzeczywistym żądaniem, łącznie z niestandardowymi nagłówkami żądań.

Jeśli żądanie wstępnej inspekcji zakończy się pomyślnie, a przeglądarka potwierdzi, że serwer zezwala na CORS, faktyczne żądanie zostanie wysłane do serwera. W przeciwnym razie przeglądarka nie wykona żądania i zamiast tego otrzyma błąd Cross-Origin.

Jakie są korzyści ze współpracy z CORS?

CORS poprawia ogólny stan bezpieczeństwa aplikacji, poprawiając jednocześnie elastyczność i interoperacyjność. Do jego głównych zalet należą:

  • Zwiększone bezpieczeństwo interfejsu API: CORS pomaga zapobiegać wysyłaniu przez złośliwe aplikacje nieautoryzowanych żądań między źródłami do wrażliwych zasobów w innej domenie. Łagodząc zasady tego samego pochodzenia (SOP) i wymagając wyraźnego pozwolenia za pośrednictwem nagłówków CORS, zmniejsza to ryzyko ataków typu cross-site request forgery (CSRF) i nieautoryzowanego dostępu do danych.
  • Uwierzytelnianie między źródłami: CORS umożliwia bezpieczne uwierzytelnianie między źródłami i zezwala na przesyłanie poświadczeń (takich jak pliki cookie lub tokeny uwierzytelniające) w żądaniach między źródłami. Jest to niezbędne w przypadku pojedynczego logowania (SSO) i innych mechanizmów uwierzytelniania.
  • Standaryzacja: CORS to ustandaryzowany mechanizm obsługiwany przez wszystkie główne przeglądarki internetowe. Ta jednolita implementacja we wszystkich przeglądarkach zapewnia spójne i niezawodne podejście do obsługi żądań pochodzących z różnych źródeł.
  • Integracja API: CORS jest niezbędny do integracji aplikacji internetowych z zewnętrznymi interfejsami API, umożliwiając programistom korzystanie z funkcjonalności stron trzecich we własnych usługach.

Jakie są najlepsze praktyki wdrażania Cross-Origin?

Chociaż CORS został zaprojektowany tak, aby bezpiecznie zastąpić zasady tego samego pochodzenia, wiąże się to z własnymi względami bezpieczeństwa. Niewłaściwe wdrożenie CORS może narazić Twoją aplikację na ryzyko naruszenia bezpieczeństwa danych i ujawnienia wrażliwych danych. Poniżej przedstawiamy najlepsze praktyki z zakresu cyberbezpieczeństwa CORS od zespołu Bitdefender:

  • Unikaj zaśmiecania pamięci podręcznej: Jeśli nagłówek serwera Access-Control-Max-Age jest ustawiony na długi czas, a odpowiedź jest buforowana, w kolejnych żądaniach mogą zostać użyte nieaktualne uprawnienia, co prowadzi do potencjalnych problemów z bezpieczeństwem. Upewnij się, że w Access-Control-Max-Age ustawiono umiarkowany czas trwania (domyślny i zalecany czas trwania to pięć sekund).
  • Bądź wyraźny: Nie zaleca się używania symboli wieloznacznych (*). Zamiast tego jawnie określ źródła, które mogą uzyskiwać dostęp do zasobów serwera, używając nagłówka Access-Control-Allow-Origin. Powinieneś także jawnie określić dozwolone metody i nagłówki za pomocą Access-Control-Allow-Methods i Access-Control-Allow-Headers. Używaj symboli wieloznacznych tylko wtedy, gdy jesteś pewien, że chcesz, aby interfejs API był dostępny z dowolnego źródła.
  • Dołącz prawidłowe nagłówki CORS: Upewnij się, że serwer zawiera wszystkie niezbędne nagłówki w swojej odpowiedzi CORS. Niezastosowanie się do tego może narazić aplikację na zagrożenia bezpieczeństwa. Na przykład brak nagłówka Access-Control-Allow-Credentials może być problematyczny, jeśli przeglądarka nie zwraca danych uwierzytelniających, kiedy powinna. Jeśli zostanie ustawiona na niezamierzoną wartość, przeglądarka może udostępniać dane uwierzytelniające niepożądanemu pochodzeniu.
  • Dokumentuj wszystko: Ważne jest odpowiednie udokumentowanie zasad CORS i udostępnienie ich programistom, którzy mogą zintegrować Twoje interfejsy API ze swoimi aplikacjami. Ta praktyka pomaga zapewnić lepszą obsługę programistów i buduje zaufanie wśród konsumentów interfejsu API.
  • Sprawdź poświadczenia: CORS domyślnie ignoruje poświadczenia. Jeśli chcesz uwzględnić poświadczenia (takie jak pliki cookie lub poświadczenia uwierzytelniania HTTP) w żądaniach między źródłami, ustaw Access-Control-Allow-Credentials na true. Należy jednak również upewnić się, że serwer sprawdza i bezpiecznie obsługuje poświadczenia.

Pamiętaj także o tym, aby zawsze zabezpieczyć wszystkie urządzenia, z których korzystasz za pomocą skutecznego programu antywirusowego. Dzięki temu nie tylko zabezpieczysz się przed złośliwym oprogramowaniem, które mogłoby wykraść Twoje dane uwierzytelniające, lecz także uchronisz się przed następstwami phishingu i ransomware. Jeśli chcesz poznać więcej możliwości programów antywirusowych Bitdefender, to sprawdź tę stronę.


Autor


Adam

Adam D

Asystent ds. Serwisu i E-commerce, od ponad dwóch lat pracuję w branży IT. Do moich zadań należy wspomaganie działań na sklepie internetowym, wyszukiwanie nowinek technologicznych, wsparcie techniczne wewnątrz firmy lecz również pomoc klientom. Interesuje się grą na gitarze oraz branżą gier i działaniami policji w terenie.

Zobacz posty autora


Artykuły które mogą Ci się spodobać

×

Informacje o bezpieczeństwie produktu (GPSR)

Producent

Bitdefender

Nazwa własna: Bitdefender
Adres: 15A Orhideelor Road, Orhideea Towers
060071 Bukareszt, 6. Dzielnica
Rumunia

Kontakt:
https://www.bitdefender.com/consumer/support/help/
Contact Support - Bitdefender

Ostrzeżenia dotyczące bezpieczeństwa

Lista ostrzeżeń dotyczących bezpieczeństwa antywirusów i bezpieczeństwa oparta o wymagania Rozporządzenia (UE) 2023/988 w sprawie ogólnego bezpieczeństwa produktów (GPSR).

Oprogramowanie antywirusowe i zabezpieczające to szeroka kategoria produktów, dlatego poniższe ostrzeżenia mają charakter ogólny i mogą nie odnosić się do wszystkich konkretnych produktów.

Instrukcja bezpieczeństwa dla programów antywirusowych i zabezpieczających

1. Wybór odpowiedniego oprogramowania

  • Wybieraj programy z uznanych źródeł, takich jak oficjalne strony producentów.
  • Zwracaj uwagę na oceny i recenzje użytkowników oraz niezależnych organizacji zajmujących się testowaniem oprogramowania.

2. Aktualizacje

  • Regularnie aktualizuj programy antywirusowe i zabezpieczające, aby mieć pewność, że są one chronione przed najnowszymi zagrożeniami.
  • Włącz automatyczne aktualizacje, jeśli to możliwe.

3. Skanowanie systemu

  • Przeprowadzaj regularne skanowania całego systemu w celu wykrycia potencjalnych zagrożeń.
  • Ustaw harmonogram skanowania, aby nie zapomnieć o tej czynności.

4. Ochrona w czasie rzeczywistym

  • Upewnij się, że funkcja ochrony w czasie rzeczywistym jest włączona, aby zminimalizować ryzyko infekcji.
  • Monitoruj aktywność programu antywirusowego i reaguj na wszelkie zgłoszone zagrożenia.

5. Bezpieczeństwo Internetu

  • Korzystaj z dodatkowych funkcji, takich jak zapory ogniowe i filtry ochrony prywatności.
  • Bądź ostrożny przy pobieraniu plików oraz wchodzeniu na nieznane strony internetowe.

6. Zarządzanie dostępem

  • Ogranicz dostęp do programów zabezpieczających tylko do zaufanych użytkowników.
  • Używaj silnych haseł do kont związanych z oprogramowaniem zabezpieczającym.

7. Edukacja użytkowników

  • Przeszkol wszystkich użytkowników korzystających z systemu w zakresie bezpieczeństwa.
  • Wprowadź zasady dotyczące rozpoznawania potencjalnych zagrożeń, takich jak phishing.

8. Tworzenie kopii zapasowych

  • Regularnie twórz kopie zapasowe ważnych danych, aby w razie infekcji móc przywrócić system do stanu przed atakiem.
  • Upewnij się, że kopie zapasowe są przechowywane w bezpiecznym miejscu, oddzielonym od głównego systemu.

9. Reakcja na zagrożenia

  • W przypadku wykrycia zagrożenia, niezwłocznie postępuj zgodnie z instrukcjami programu antywirusowego.
  • Rozważ konsultację z profesjonalnym serwisem w sytuacji poważnych infekcji.

10. Zgłaszanie problemów

  • Zgłaszaj wszelkie nieprawidłowości lub problemy z działaniem oprogramowania do odpowiednich kanałów wsparcia technicznego.

Przestrzeganie powyższych wytycznych pomoże w skutecznej ochronie systemu przed zagrożeniami oraz w zapewnieniu bezpieczeństwa danych.