Everyone говорит, что CORS не делает ничего для защиты от атак CSRF. Это связано с тем, что CORS блокирует внешние домены от доступа (чтения) ресурсов в вашем домене, но не не позволяет обрабатывать запрос. Таким образом, злые сайты могут отправлять запросы DELETE с изменением состояния, не заботясь о том, что они не могут прочитать результат.Почему предполетные CORS блокируют атаки CSRF?
Это все хорошо и хорошо.
За исключением pre-flight CORS.
В этом случае CORS смотрит запрос перед отправкой и проверяет, является ли он законным. Если это не так, запрос отклоняется.
Таким образом, запрос DELETE, который пытается направить злоумышленник CSRF, не проходит проверку перед полетом, и поэтому отклоняется. Атака CSRF терпит неудачу.
Что мне здесь не хватает?
«Например, не все межадресные вызовы ajax генерируют предполетный запрос, а обычные POST - нет». Почему нет? – ineedahero
Вам не нужен ajax, чтобы сделать простой пост с перекрестным происхождением. Вы также можете использовать сообщение в простой форме, поэтому было бы не так важно ограничивать это. –
Ох. Я вижу, что вы говорите. Мне было интересно, что ... почему предварительный полет CORS активируется для запросов PUT, но не для запросов POST? Так как вы говорите, что POST могут быть столь же опасны ... – ineedahero