Próbuję zrozumieć, jak używać CORS i jestem zdezorientowany, co Access-Control-Allow-Credentials
robi nagłówek.
Dokumentacja mówi
Wskazuje, czy odpowiedź na żądanie może być ujawniona, gdy flaga poświadczeń ma wartość true.
Ale nie rozumiem, co oznacza „ujawnienie” odpowiedzi.
Czy ktoś może wyjaśnić, co ten nagłówek jest ustawiony na true (w połączeniu z flagą poświadczeń ustawioną na true) tak naprawdę robi?
http-headers
cors
Nate
źródło
źródło
Odpowiedzi:
Domyślnie CORS nie uwzględnia plików cookie w żądaniach między źródłami. Różni się to od innych technik pochodzących z różnych źródeł, takich jak JSON-P. JSON-P zawsze zawiera pliki cookie z żądaniem, a to zachowanie może prowadzić do pewnej klasy luk zwanej fałszowaniem żądań między lokacjami lub CSRF.
Aby zmniejszyć prawdopodobieństwo wystąpienia luk CSRF w CORS, CORS wymaga, aby zarówno serwer, jak i klient potwierdzili, że umieszczanie plików cookie w żądaniach jest w porządku. Dzięki temu pliki cookie stają się aktywną decyzją, a nie czymś, co dzieje się biernie bez żadnej kontroli.
Kod klienta należy ustawić
withCredentials
właściwość naXMLHttpRequest
celutrue
, aby dać zgodę.Jednak sam ten nagłówek nie wystarczy. Serwer musi odpowiedzieć
Access-Control-Allow-Credentials
nagłówkiem. Odpowiedź za pomocą tego nagłówkatrue
oznacza, że serwer zezwala na dołączanie plików cookie (lub innych danych uwierzytelniających użytkownika) do żądań z innych źródeł.Musisz również upewnić się, że Twoja przeglądarka nie blokuje plików cookie innych firm, jeśli chcesz, aby żądania uwierzytelniające z różnych źródeł działały.
Pamiętaj, że niezależnie od tego, czy wysyłasz żądania z tego samego, czy z różnych źródeł, musisz chronić swoją witrynę przed CSRF (zwłaszcza jeśli żądanie zawiera pliki cookie).
źródło
withCredentials
jest ustawiona, ale potem, gdy otrzyma odpowiedź, jeśli ustawiono withCredentials, dostarczy / ujawni wynik do wywołującego javascript tylko wtedy, gdy odpowiedź ma Access Zestaw nagłówków -Control-Allow-Credentials. Jeśli nie ma nagłówka, nie ujawnia odpowiedzi, skutecznie ją wprowadzając na czarno.