Dowiedz się więcej o nagłówkach, które mogą chronić witrynę i szybko wyszukiwać najważniejsze informacje.
W tym artykule znajdziesz najważniejsze nagłówki zabezpieczeń, których możesz używać do ochrony do Twojej witryny. Dzięki niemu poznasz funkcje zabezpieczeń internetowych i dowiesz się, jak implementuj je w swojej witrynie oraz korzystaj z nich, by przypominać Ci o nich.
- Nagłówki zabezpieczeń zalecane w przypadku witryn, które obsługują poufne dane użytkownika:
- Polityka bezpieczeństwa treści (CSP)
- Zaufane typy
- Nagłówki zabezpieczeń zalecane dla wszystkich witryn:
- X-Content-Type-Options
- X-Frame-Options
- Zasady dotyczące zasobów z różnych domen (CORP)
- Zasady dotyczące otwartych produktów z różnych domen (COOP)
- HTTP Strict Transport Security (HSTS)
- Nagłówki zabezpieczeń dla witryn z zaawansowanymi funkcjami:
- Udostępnianie zasobów między serwerami z różnych domen (CORS)
- Zasady dotyczące umieszczania treści z różnych domen (COEP)
Zanim zagłębimy się w nagłówki dotyczące bezpieczeństwa, poznaj znane zagrożenia internetowe i dlaczego warto używać tych nagłówków.
Ochrona witryny przed lukami w zabezpieczeniach przed wstrzyknięciem kodu
Luki w zabezpieczeniach polegające na wstrzyknięciu pojawiają się, gdy niezaufane dane przetwarzane przez może wpłynąć na swoje działanie i zwykle prowadzić do wykonania skrypty kontrolowane przez atakującego. Najczęstsza luka w zabezpieczeniach spowodowana wstrzyknięciem Błędy występują między witrynami skrypty (XSS) w w różnych formach, w tym XSS przechowywane dane XSS, Oparta na DOM XSS oraz z innymi wariantami.
Luka XSS zwykle daje osobie przeprowadzającej atak pełny dostęp do danych użytkownika przetwarzane przez aplikację oraz wszelkie inne informacje przechowywane w tej samej sieci origin.
Tradycyjne metody ochrony przed wstrzykiwaniem obejmują powtarzające się stosowanie automatycznego ucieczki systemów szablonów HTML, unikając stosowania niebezpiecznych skryptów JavaScript. interfejsów API oraz poprawnego przetwarzania danych użytkowników za pomocą hostingu przesyłanie plików do osobnej domeny i dezynfekcję kodu HTML kontrolowanego przez użytkowników.
- Użyj polityki Content Security Policy (CSP), aby kontrolować, które skrypty mogą być wykonywane przez aplikację, aby zmniejszyć ryzyko wstrzykiwania.
- Używaj zaufanych typów, aby egzekwować oczyszczanie danych przekazywanych do niebezpiecznych API JavaScript.
- Użyj X-Content-Type-Options, aby uniemożliwić przeglądarce błędnej interpretacji typów MIME zasobów witryny, co może prowadzić do wykonywania skryptu.
Odizoluj witrynę od innych witryn
Otwartość internetu umożliwia witrynom współdziałanie ze sobą w sposób, może naruszać oczekiwania aplikacji w zakresie bezpieczeństwa. Obejmuje to niespodziewane zmiany wysyłania uwierzytelnionych żądań lub umieszczania danych z innej aplikacji w dokumentu atakującego, co pozwoli hakerowi zmodyfikować lub odczytać dane aplikacji.
Do najczęstszych luk w zabezpieczeniach, które utrudniają izolację sieci, należą: clickjacking, cross-site żądanie oszustw (CSRF), inne witryny uwzględnianie skryptów (XSSI) oraz różne wyciek danych między witrynami.
- Użyj X-Frame-Options, by zapobiec osadzeniu dokumentów przez złośliwej witryny.
- Za pomocą zasad dotyczących zasobów z różnych domen (CORP) możesz zapobiec między witrynami z innych domen.
- Korzystaj z zasad dotyczących otwierania treści z różnych domen, aby chronić przed interakcjami ze złośliwymi stronami internetowymi.
- Używaj współdzielenia zasobów między serwerami z różnych domen (CORS), aby kontrolować dostęp do z dokumentów z innych domen.
Post-Spectre Web Programowanie to świetny temat jeśli interesują Cię te nagłówki.
Utwórz bezpieczną witrynę w sposób bezpieczny
Spectre wczytuje dane
do tej samej grupy kontekstu przeglądania, którą można potencjalnie odczytać
pomimo zasady z tej samej domeny. Ograniczenia przeglądarek
które mogłyby wykorzystać lukę kryjącą się w specjalnym środowisku
„cross-origin and” (izolacja zasobów z innych domen). Dzięki izolacji zasobów z innych domen możesz:
korzystać z zaawansowanych funkcji, takich jak SharedArrayBuffer
.
- Korzystaj z zasad umieszczania treści z różnych domen (COEP) wraz z zasadą COOP, aby: włączyć izolację zasobów z innych domen.
Szyfrowanie ruchu w witrynie
Problemy z szyfrowaniem pojawiają się, gdy aplikacja nie zaszyfruje w pełni danych transport publiczny, dzięki czemu osoby przeprowadzające podsłuch mogą wysłuchać informacji o interakcjach użytkownika. z aplikacją.
Niewystarczające szyfrowanie może wystąpić w następujących przypadkach: niekorzystanie z protokołu HTTPS,
treść mieszana, ustawianie plików cookie bez Secure
(lub __Secure
prefiks),
lub nieregularna weryfikacja CORS
.
- Aby konsekwentnie wyświetlać treści, używaj HTTP Strict Transport Security (HSTS). treści przy użyciu protokołu HTTPS.
Polityka bezpieczeństwa treści (CSP)
Skrypty między witrynami (XSS) to atak, luka w zabezpieczeniach witryny umożliwia wstrzyknięcie szkodliwego skryptu .
Content-Security-Policy
zapewnia dodatkową warstwę, która pozwala ograniczyć ataki XSS przez
z ograniczeniem liczby skryptów, które mogą być wykonywane przez stronę.
Zalecamy włączenie ścisłego CSP za pomocą jednej z tych metod:
- Jeśli renderujesz strony HTML na serwerze, użyj rygorystycznego CSP bez użycia kodu.
- Jeśli kod HTML musi być wyświetlany statycznie lub w pamięci podręcznej, na przykład w przypadku aplikacji na jednej stronie, użyj rygorystycznego CSP opartego na haszowaniu.
Przykład użycia: CSP bez wartości
Content-Security-Policy:
script-src 'nonce-{RANDOM1}' 'strict-dynamic' https: 'unsafe-inline';
object-src 'none';
base-uri 'none';
Zalecane zastosowania
1. Użyj rygorystycznego CSP opartego na liczbie jednorazowej {: #nonce-based-csp}
Jeśli renderujesz strony HTML na serwerze, użyj rygorystycznego CSP bez użycia kodu.
Wygeneruj nową wartość jednorazową skryptu dla każdego żądania po stronie serwera i ustaw następujący nagłówek:
plik konfiguracji serwera
Content-Security-Policy: script-src 'nonce-{RANDOM1}' 'strict-dynamic' https: 'unsafe-inline'; object-src 'none'; base-uri 'none';
Aby w kodzie HTML wczytać skrypty, ustaw atrybut nonce
wszystkich elementów
Tagi <script>
do tego samego ciągu znaków {RANDOM1}
.
index.html
<script nonce="{RANDOM1}" src="https://example.com/script1.js"></script> <script nonce="{RANDOM1}"> // Inline scripts can be used with the <code>nonce</code> attribute. </script>
Zdjęcia Google są dobrym rygorystycznym CSP bez wartości przykład. Użyj Narzędzi deweloperskich, aby zobaczyć ich zastosowania.
2. Użyj rygorystycznego CSP opartego na haszowaniu {: #hash-based-csp}
Jeśli kod HTML musi być wyświetlany statycznie lub w pamięci podręcznej, na przykład podczas tworzenia aplikacji jednostronicowej, użyj rygorystycznego CSP opartego na haszowaniu.
plik konfiguracji serwera
Content-Security-Policy: script-src 'sha256-{HASH1}' 'sha256-{HASH2}' 'strict-dynamic' https: 'unsafe-inline'; object-src 'none'; base-uri 'none';
Aby zastosować kod oparty na haszowaniu, w kodzie HTML musisz umieścić skrypty zasad, ponieważ większość przeglądarek nie obsługuje szyfrowania zewnętrznych skrypty.
index.html
<script> ...// your script1, inlined </script> <script> ...// your script2, inlined </script>
Aby wczytywać skrypty zewnętrzne, przeczytaj sekcję „Dynamiczne wczytywanie skryptów źródłowych” poniżej Opcja B: nagłówek odpowiedzi CSP oparty na haszach.
CSP Evaluator to dobre narzędzie do i dobry przykład CSP. Użyj Narzędzi deweloperskich, aby zobaczyć ich zastosowania.
Obsługiwane przeglądarki
Inne ważne uwagi dotyczące CSP
frame-ancestors
chroni witrynę przed przechwytywaniem kliknięć – istnieje ryzyko, które pojawia się, jeśli zezwolisz niezaufanych stron, na których możesz umieścić swoją. Jeśli wolisz prostsze rozwiązanie, użyjX-Frame-Options
blokuje wczytywanie, aleframe-ancestors
daje zaawansowaną konfigurację, która zezwala na umieszczanie w witrynach tylko określonych źródeł.- Korzystanie z platformy CSP pozwala upewnić się, że wszystkie zasoby witryny wczytywane przez HTTPS. Zawiera mogą stać się mniej istotne. Obecnie większość przeglądarek blokuje treści mieszane.
- Można również ustawić CSP w trybie tylko do raportu .
- Jeśli nie możesz ustawić CSP jako nagłówka po stronie serwera, możesz też ustawić go jako meta . Pamiętaj, że w przypadku metatagów nie można używać trybu tylko do raportowania (chociaż może się to zmienić).
Więcej informacji
Zaufane typy
Oparta na DOM
XSS to
atak polegający na przekazaniu szkodliwych danych do ujścia obsługującego kod dynamiczny
na przykład eval()
lub .innerHTML
.
Zaufane typy zapewniają narzędzia do pisania, weryfikacji bezpieczeństwa i zarządzania bez DOM XSS. Można je włączyć przez CSP i ustawić Domyślnie kod JavaScript jest bezpieczny, ponieważ nie zezwala na akceptowanie niebezpiecznych internetowych interfejsów API obiekt specjalny – zaufanego typu.
Aby utworzyć te obiekty, możesz zdefiniować zasady zabezpieczeń, dzięki którym możesz: że reguły zabezpieczeń (takie jak zmiana znaczenia czy dezynfekcja) są stosowane konsekwentnie; przed zapisaniem danych w modelu DOM. Te zasady są jedynymi miejscami, w kodzie, które mogłyby wprowadzić DOM XSS.
Przykładowe zastosowania
Content-Security-Policy: require-trusted-types-for 'script'
// Feature detection
if (window.trustedTypes && trustedTypes.createPolicy) {
// Name and create a policy
const policy = trustedTypes.createPolicy('escapePolicy', {
createHTML: str => {
return str.replace(/\</g, '<').replace(/>/g, '>');
}
});
}
// Assignment of raw strings is blocked by Trusted Types.
el.innerHTML = 'some string'; // This throws an exception.
// Assignment of Trusted Types is accepted safely.
const escaped = policy.createHTML('<img src=x onerror=alert(1)>');
el.innerHTML = escaped; // '&lt;img src=x onerror=alert(1)&gt;'
Zalecane zastosowania
-
Egzekwowanie zaufanych typów w przypadku niebezpiecznych ujść DOM Nagłówek CSP i Zaufane typy:
Content-Security-Policy: require-trusted-types-for 'script'
Obecnie
'script'
jest jedyną akceptowaną wartością dla argumenturequire-trusted-types-for
.Oczywiście możesz łączyć te typy z innymi dyrektywami CSP:
Scalanie powyższego CSP opartego na liczbie jednorazowej z zaufanymi typami:
Content-Security-Policy:
script-src 'nonce-{RANDOM1}' 'strict-dynamic' https: 'unsafe-inline';
object-src 'none';
base-uri 'none';
require-trusted-types-for 'script';
<aside class="note"><b>Uwaga: </b> Możesz ograniczyć dozwolone nazwy zasad zaufanych typów, ustawiając dodatkowe <code>zaufane typy</code> (na przykład <code>trusted-types myPolicy</code>). Nie jest to jednak wymagane. </aside>
-
Zdefiniuj zasadę
Zasady:
// Feature detection
if (window.trustedTypes && trustedTypes.createPolicy) {
// Name and create a policy
const policy = trustedTypes.createPolicy('escapePolicy', {
createHTML: str => {
return str.replace(/\/g, '>');
}
});
}
-
Zastosuj zasadę
Używaj tych zasad podczas zapisywania danych w DOM:
// Assignment of raw strings are blocked by Trusted Types.
el.innerHTML = 'some string'; // This throws an exception.</p>
<p>// Assignment of Trusted Types is accepted safely.
const escaped = policy.createHTML('<img src="x" onerror="alert(1)">');
el.innerHTML = escaped; // '<img src=x onerror=alert(1)>'
W require-trusted-types-for 'script'
użycie zaufanego typu jest
. Użycie niebezpiecznego interfejsu DOM API z ciągiem znaków spowoduje wyświetlenie
.
Obsługiwane przeglądarki
Więcej informacji
- Zapobiegaj lukom w zabezpieczeniach związanych ze skryptami z innych witryn bazującymi na DOM za pomocą funkcji Zaufane
Typy
- CSP: required-trusted-types-for – HTTP |
MDN
- CSP: zaufane typy – HTTP |
MDN
- Wersja demonstracyjna zaufanych typów – otwórz Inspektora Narzędzi deweloperskich i zobacz
co się dzieje
X-Content-Type-Options
Gdy z Twojej domeny zostanie wysłany złośliwy dokument HTML (na przykład obraz przesłany do usługi fotograficznej zawiera prawidłowe znaczniki HTML), niektóre przeglądarki potraktuje go jako aktywny dokument i pozwoli mu na wykonywanie skryptów w kontekście aplikacji i prowadząc do skryptów między witrynami .
Funkcja X-Content-Type-Options: nosniff
zapobiega mu, instruując przeglądarkę
typ MIME ustawiony w
Nagłówek Content-Type
danej odpowiedzi jest prawidłowy. Ten nagłówek jest
zalecane w przypadku wszystkich zasobów.
Przykład użycia
X-Content-Type-Options: nosniff
Zalecane zastosowania
Zalecany tryb X-Content-Type-Options: nosniff
jest zalecany w przypadku wszystkich zasobów udostępnianych z
serwera oraz odpowiedni nagłówek Content-Type
.
Przykładowe nagłówki wysłane z kodem HTML dokumentu
X-Content-Type-Options: nosniff Content-Type: text/html; charset=utf-8
Obsługiwane przeglądarki
Więcej informacji
X-Frame-Options
Jeśli złośliwa witryna może umieścić Twoją witrynę w elemencie iframe, może to zezwalać na aby osoby przeprowadzające atak wywołały niezamierzone działania użytkownika clickjacking. Poza tym w niektórych przypadki typ Spectre ataki dają złośliwe witryny, mogą poznać treść umieszczonego dokumentu.
X-Frame-Options
wskazuje, czy przeglądarka może wyświetlać
stronę w kolumnach <frame>
, <iframe>
, <embed>
lub <object>
. Wszystkie dokumenty
wysyłanie tego nagłówka w celu wskazania, czy pozwalają
umieszczone w innych dokumentach.
Przykład użycia
X-Frame-Options: DENY
Zalecane zastosowania
Wszystkie dokumenty, które nie są przeznaczone do umieszczania, powinny używać nagłówka X-Frame-Options
.
Możesz zobaczyć, jak poniższe konfiguracje wpływają na ładowanie elementu iframe na tym
wersji demonstracyjnej. Zmień X-Frame-Options
i kliknij przycisk Załaduj ponownie element iframe.
Chroni Twoją witrynę przed umieszczeniem w innych witrynach
Zabroń umieszczenia w innym dokumencie.
X-Frame-Options: DENY
Chroni Twoją witrynę przed umieszczeniem w witrynie z innej domeny.
Zezwalaj na umieszczanie tylko w dokumentach tej samej domeny.
X-Frame-Options: SAMEORIGIN
Obsługiwane przeglądarki
Więcej informacji
Zasady dotyczące zasobów z różnych domen (CORP)
Osoba przeprowadzająca atak może umieścić zasoby z innego źródła, na przykład z Twojej witryny, aby zdobyć o nich informacje za pomocą innych witryn wyciek danych.
Cross-Origin-Resource-Policy
ogranicza to ryzyko, wskazując zestaw
stron, przez które może być wczytywany. Nagłówek może mieć jedną z 3 wartości:
same-origin
, same-site
i cross-origin
. Wszystkie zasoby są
zalecamy wysłanie tego nagłówka, aby wskazać, czy pozwalają na ładowanie
innych witrynach.
Przykład użycia
Cross-Origin-Resource-Policy: same-origin
Zalecane zastosowania
Zalecamy, aby wszystkie zasoby były obsługiwane przez jedną z tych konfiguracji: 3 nagłówki.
Możesz sprawdzić, jak poniższe konfiguracje wpływają na ładowanie zasobów w
środowisko Cross-Origin-Embedder-Policy: require-corp
na tym
wersji demonstracyjnej. Zmień
w menu Cross-Origin-Resource-Policy i kliknąć Odśwież
Element iframe lub przycisk Załaduj obraz ponownie, aby zobaczyć efekt.
Zezwalaj na ładowanie zasobów cross-origin
Zaleca się, aby usługi podobne do CDN stosowały cross-origin
do zasobów
(ponieważ są one zwykle ładowane przez strony z innych domen), chyba że są już wyświetlane
za pomocą CORS, który daje podobny efekt.
Cross-Origin-Resource-Policy: cross-origin
Ogranicz ładowanie zasobów z same-origin
Pole same-origin
powinno być stosowane tylko do zasobów, które mają być ładowane
przez strony
z tej samej domeny. Należy go zastosować do zasobów, które zawierają poufne dane
informacje o użytkowniku lub odpowiedzi interfejsu API, który ma być wywoływany
tylko z tego samego źródła.
Pamiętaj, że zasoby z tym nagłówkiem można nadal ładować bezpośrednio, na przykład otwierając adres URL w nowym oknie przeglądarki. Zasób z innego źródła Zasada chroni tylko zasób przed umieszczeniem go w innych witrynach.
Cross-Origin-Resource-Policy: same-origin
Ogranicz ładowanie zasobów z same-site
Zalecamy stosowanie same-site
do zasobów podobnych do powyżej
ale powinny być wczytywane przez inne subdomeny Twojej witryny.
Cross-Origin-Resource-Policy: same-site
Obsługiwane przeglądarki
Więcej informacji
Zasady dotyczące otwartych źródeł w różnych źródłach
Osoba atakująca może otworzyć inną witrynę w wyskakującym okienku, aby dowiedzieć się, o które wiemy, wykorzystując znajdujące się w witrynach wyciek danych. W niektórych przypadkach może to również umożliwić wyświetlenie wykorzystania ataków typu side-channel na podstawie Spectre
Nagłówek Cross-Origin-Opener-Policy
umożliwia izolowanie dokumentu
z okna z innej domeny otwartych za pomocą window.open()
lub linku z
target="_blank"
bez rel="noopener"
. W rezultacie każdy element otwierający z innej domeny
dokument nie będzie się do niego odnosił i nie będzie mógł z niego korzystać
z nim.
Przykład użycia
Cross-Origin-Opener-Policy: same-origin-allow-popups
Zalecane zastosowania
Możesz sprawdzić, jak poniższe konfiguracje wpływają na komunikację z wyskakujące okienko z innej domeny w tej wersji demonstracyjnej. Zmień menu Cross-Origin-Opener-Policy w przypadku danego dokumentu i wyskakującym okienku kliknij przycisk Otwórz wyskakujące okienko, a następnie kliknij Wyślij postMessage, aby sprawdzić, czy wiadomość została rzeczywiście dostarczona.
Izolowanie dokumentu od okien z innych domen
Ustawienie same-origin
powoduje, że dokument jest izolowany od zasobów z innych domen
oknach dokumentów.
Cross-Origin-Opener-Policy: same-origin
Izoluj dokument od okien z innych domen, ale zezwalaj na wyskakujące okienka
Ustawienie same-origin-allow-popups
umożliwia przechowywanie dokumentu odniesienie do
jego wyskakujące okienka, chyba że sprzedawca określił coOP przy użyciu: same-origin
lub
same-origin-allow-popups
Oznacza to, że same-origin-allow-popups
nadal może
zabezpieczy dokument przed odwołaniem po otwarciu jako wyskakującego okienka, ale
na komunikację z własnymi wyskakującymi okienkami.
Cross-Origin-Opener-Policy: same-origin-allow-popups
Zezwalaj na odwoływanie się do dokumentu przez okna z innych domen
unsafe-none
to wartość domyślna, ale możesz wprost wskazać, że to
dokument można otworzyć w oknie z innej domeny i zachować wzajemny dostęp.
Cross-Origin-Opener-Policy: unsafe-none
Wzorce raportów niezgodne z COOP
Możesz otrzymywać raporty, gdy system współpracy z partnerem (COOP) uniemożliwi kontakt z reklamodawcą Interfejs API do raportowania.
Cross-Origin-Opener-Policy: same-origin; report-to="coop"
COOP obsługuje też tryb „tylko raporty”, dzięki któremu możesz otrzymywać raporty bez rzeczywiste blokowanie komunikacji między dokumentami z innych domen.
Cross-Origin-Opener-Policy-Report-Only: same-origin; report-to="coop"
Obsługiwane przeglądarki
Więcej informacji
współdzielenie zasobów pomiędzy serwerami z różnych domen (CORS)
W przeciwieństwie do innych elementów w tym artykule funkcja CORS nie jest z nagłówkiem, lecz mechanizmem przeglądarki, który wysyła żądania i zezwala na dostęp między domenami.
Domyślnie przeglądarki wymuszają zasady dotyczące tej samej domeny, aby uniemożliwia stronie internetowej dostęp do zasobów z innych domen. Na przykład, gdy plik obraz z innej domeny jest wczytywany, mimo że jest wyświetlany na stronie internetowej JavaScript na stronie nie ma dostępu do danych obrazu. Dostawca zasobów może złagodzić ograniczenia i zezwolić innym witrynom na odczyt zasobów przez włączenie CORS.
Przykład użycia
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true
Zanim przejdziemy do konfigurowania CORS, warto poznać na czym polega różnica między typami żądań. W zależności od szczegółów prośby zostanie ona sklasyfikować jako proste żądanie lub żądanie wstępne.
Kryteria prostego żądania:
- Metoda to
GET
,HEAD
lubPOST
. - Niestandardowe nagłówki to tylko
Accept
,Accept-Language
,Content-Language
iContent-Type
. - Wartość „
Content-Type
” toapplication/x-www-form-urlencoded
,multipart/form-data
lubtext/plain
.
Wszystkie pozostałe są klasyfikowane jako żądania wstępne. Aby dowiedzieć się więcej, zapoznaj się z informacjami o współdzieleniu zasobów między pochodzeniem (CORS) – HTTP | MDN.
Zalecane zastosowania
Proste żądanie
Jeśli żądanie spełnia proste kryteria żądania, przeglądarka wysyła komunikat
żądanie z innej domeny z nagłówkiem Origin
wskazującym
pochodzeniu danych.
Przykładowy nagłówek żądania
Get / HTTP/1.1 Origin: https://example.com
Przykładowy nagłówek odpowiedzi
Access-Control-Allow-Origin: https://example.com Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://example.com
oznacza, żehttps://example.com
ma dostęp do treści odpowiedzi. Przeznaczone zasoby aby była możliwa do odczytania przez dowolną witrynę, może ustawić ten nagłówek na wartość*
, w którym to przypadku przeglądarka będzie wymagać jedynie żądania wysyłanego bez dane logowania.Access-Control-Allow-Credentials: true
wskazuje, że żądania, które zawierają przenoszenie dane logowania (pliki cookie) mogą służyć do wczytywania zasobu. W przeciwnym razie uwierzytelnione żądania będą odrzucane, nawet jeśli źródło żądania jest w nagłówkuAccess-Control-Allow-Origin
.
Możesz sprawdzić, jak proste żądanie wpływa na ładowanie zasobów w
środowisko Cross-Origin-Embedder-Policy: require-corp
na tym
wersji demonstracyjnej. Kliknij
pole wyboru Udostępnianie zasobów między serwerami z różnych domen i kliknij Załaduj obraz ponownie.
aby zobaczyć efekt.
Żądania wstępne
Żądanie wstępne jest poprzedzone żądaniem OPTIONS
sprawdzające, czy
może zostać wysłane kolejne żądanie.
Przykładowy nagłówek żądania
OPTIONS / HTTP/1.1 Origin: https://example.com Access-Control-Request-Method: POST Access-Control-Request-Headers: X-PINGOTHER, Content-Type
Access-Control-Request-Method: POST
umożliwia wysłanie następującego żądania metodyPOST
.Access-Control-Request-Headers: X-PINGOTHER, Content-Type
zezwala na: żądający ustawienia nagłówków HTTPX-PINGOTHER
iContent-Type
w sekcji kolejne żądanie.
Przykładowe nagłówki odpowiedzi
Access-Control-Allow-Origin: https://example.com Access-Control-Allow-Credentials: true Access-Control-Allow-Methods: POST, GET, OPTIONS Access-Control-Allow-Headers: X-PINGOTHER, Content-Type Access-Control-Max-Age: 86400
Access-Control-Allow-Methods: POST, GET, OPTIONS
oznacza, że kolejne żądania mogą być wysyłane za pomocą metodPOST
,GET
iOPTIONS
.Access-Control-Allow-Headers: X-PINGOTHER, Content-Type
oznacza następny mogą zawierać nagłówkiX-PINGOTHER
iContent-Type
.Access-Control-Max-Age: 86400
wskazuje, że wynik etapu wstępnego może być przechowywane w pamięci podręcznej przez 86 400 sekund.
Obsługiwane przeglądarki
Więcej informacji
Zasady dotyczące umieszczania treści z różnych domen (COEP)
Aby ograniczyć skuteczność
ataków, aby
kradzież zasobów z innych domen, funkcji takich jak SharedArrayBuffer
czy
performance.measureUserAgentSpecificMemory()
są domyślnie wyłączone.
Cross-Origin-Embedder-Policy: require-corp
uniemożliwia dostęp do dokumentów i instancji roboczych
wczytywanie zasobów z innych domen, takich jak obrazy, skrypty, arkusze stylów, elementy iframe
inne, chyba że zasoby te wyraźnie zgadzają się na ładowanie przez CORS.
lub CORP. Koszt własny sprzedaży można połączyć z usługą Cross-Origin-Opener-Policy
aby włączyć w dokumencie izolację zasobów z innych domen.
Aby włączyć, użyj Cross-Origin-Embedder-Policy: require-corp
izolację zasobów z innych domen w przypadku dokumentu.
Przykład użycia
Cross-Origin-Embedder-Policy: require-corp
Przykładowe zastosowania
COEP przyjmuje pojedynczą wartość require-corp
. Wysyłając ten nagłówek, możesz
poinstruuj przeglądarkę, aby blokowała wczytywanie zasobów, które nie wyrażają zgody przez
CORS lub CORP.
Możesz wypróbować, jak poniższe konfiguracje wpływają na ładowanie zasobów na tym wersji demonstracyjnej. Zmień w menu Cross-Origin-Embedder-Policy Menu Cross-Origin-Resource-Policy, pole wyboru Cross-Origin-Resource-Policy itp. aby zobaczyć, jak wpływają one na ładowanie zasobów. Otwórz też punkt końcowy raportowania demo, aby sprawdzić, czy zablokowane zasoby zostało zgłoszone.
Włącz izolację zasobów z innych domen
Włącz izolację zasobów z innych domen, wysyłając e-maila
Cross-Origin-Embedder-Policy: require-corp
wraz z
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp Cross-Origin-Opener-Policy: same-origin
Zasoby raportu niezgodne z COEP
Dzięki raportowi możesz otrzymywać raporty o zablokowanych zasobach spowodowanych przez koszt własny sprzedaży API.
Cross-Origin-Embedder-Policy: require-corp; report-to="coep"
COEP obsługuje też tryb „Tylko raporty”, dzięki czemu możesz otrzymywać raporty bez blokując ładowanie zasobów.
Cross-Origin-Embedder-Policy-Report-Only: require-corp; report-to="coep"
Obsługiwane przeglądarki
Więcej informacji
HSTS (HTTP Strict Transport Security)
Komunikacja przez zwykłe połączenie HTTP nie jest szyfrowana, przez co przesłanych danych dostępnych dla osób podsłuchujących na poziomie sieci.
Nagłówek Strict-Transport-Security
informuje przeglądarkę, że nigdy nie powinna się ona wczytywać
z witryny korzystającej z protokołu HTTP, a zamiast tego użyj protokołu HTTPS. Po jej skonfigurowaniu przeglądarka używa
HTTPS zamiast HTTP – dostęp do domeny przez określony czas bez przekierowania
zdefiniowane w nagłówku.
Przykład użycia
Strict-Transport-Security: max-age=31536000
Zalecane zastosowania
Wszystkie witryny przechodzące z HTTP na HTTPS powinny zwracać błąd
Nagłówek Strict-Transport-Security
po otrzymaniu żądania HTTP.
Strict-Transport-Security: max-age=31536000
Obsługiwane przeglądarki