CORS pozwala na rozluźnienie domeny Same Origin Policy.
np. Normalnie, jeśli użytkownik loguje się zarówno do example.com
, jak i example.org
, zasada dotycząca tego samego pochodzenia zapobiega przesyłaniu żądania AJAX do example.com
do example.org/current_user/full_user_details
i uzyskiwania dostępu do odpowiedzi.
Jest to domyślna polityka sieci i zapobiega wyciekaniu danych użytkownika po zalogowaniu się w wielu witrynach w tym samym czasie.
Teraz z CORS, example.org
może ustawić zasady, aby zezwalać na pochodzenie https://example.com
odczytać odpowiedzi wykonane przez AJAX. Zostanie to zrobione, jeśli oba programy będą obsługiwane przez tę samą firmę, a udostępnianie danych między źródłami będzie dozwolone w przeglądarce użytkownika. Wpływa tylko na stronę klienta, a nie na stronę serwera.
Dostawcy CSP ustalają zasady określające, jakie treści mogą być uruchamiane w bieżącej witrynie. Na przykład, jeśli JavaScript można wykonać inline lub z którego można pobrać pliki z domenami .js
. Może to być korzystne, aby działać jako kolejna linia obrony przed atakami XSS, w której osoba atakująca spróbuje wstrzyknąć skrypt na stronę HTML. Normalnie output would be encoded, jednak programista zapomniał tylko o jednym polu wyjściowym. Ponieważ polityka uniemożliwia wykonywanie skryptów in-line, atak zostaje udaremniony.
Dziękuję za bardzo pomocną odpowiedź (przegłosowałem, ale mój przedstawiciel jest niski, aby mógł liczyć). Jedyną częścią, której nie mogłem w pełni zrozumieć, było "Normalnie wyjście byłoby zakodowane". Być może pomogłoby to innym, gdybyś mógł to trochę wyjaśnić? – nickform
Pewnie. Połączyłem się z inną odpowiedzią, aby wyjaśnić ten fragment. Daj mi znać, jeśli potrzebujesz dodatkowych wyjaśnień. – SilverlightFox
Tak, dziękuję - podążam teraz. – nickform