CORS разрешает Same Origin Policy расслабляться для домена.
например. обычно, если пользователь регистрируется как в example.com
, так и в example.org
, одна и та же политика происхождения предотвращает выполнение example.com
запроса AJAX до example.org/current_user/full_user_details
и получения доступа к ответу.
Это политика Интернета по умолчанию и предотвращает утечку данных пользователя при одновременном входе в систему на нескольких сайтах.
Теперь с CORS, example.org
может установить политику, чтобы сказать, что она позволит источнику https://example.com
читать ответы, сделанные AJAX. Это было бы сделано, если оба example.com
и example.org
управляются одной и той же компанией, и обмен данными между источниками разрешен в браузере пользователя. Это влияет только на клиентскую сторону, а не на сервер.
С другой стороны, CSP устанавливают политику того, какой контент может работать на текущем сайте. Например, если JavaScript может быть запущен inline или из каких доменов можно загрузить .js
. Это может быть полезно, чтобы действовать как еще одна линия защиты от атак XSS, где злоумышленник попытается ввести сценарий в HTML-страницу. Обычно output would be encoded, однако говорят, что разработчик забыл только на одном выходном поле. Поскольку политика предотвращает выполнение скрипта в строке, атака прерывается.
Благодарим за очень полезный ответ (я поддержал, но мой представитель должен быть низким, чтобы он мог рассчитывать). Единственная часть, которую я не мог полностью выполнить, - «Обычно вывод будет закодирован». Возможно, это помогло бы другим, если бы вы могли это немного разъяснить? – nickform
Несомненно. Я связался с другим ответом, чтобы объяснить этот бит. Пожалуйста, дайте мне знать, если вам нужны дополнительные разъяснения. – SilverlightFox
Да, спасибо - теперь я следую. – nickform