2016-12-14 19 views
1

Everyone говорит, что CORS не делает ничего для защиты от атак CSRF. Это связано с тем, что CORS блокирует внешние домены от доступа (чтения) ресурсов в вашем домене, но не не позволяет обрабатывать запрос. Таким образом, злые сайты могут отправлять запросы DELETE с изменением состояния, не заботясь о том, что они не могут прочитать результат.Почему предполетные CORS блокируют атаки CSRF?

Это все хорошо и хорошо.

За исключением pre-flight CORS.

В этом случае CORS смотрит запрос перед отправкой и проверяет, является ли он законным. Если это не так, запрос отклоняется.

Таким образом, запрос DELETE, который пытается направить злоумышленник CSRF, не проходит проверку перед полетом, и поэтому отклоняется. Атака CSRF терпит неудачу.

Что мне здесь не хватает?

ответ

0

Предварительные запросы не предотвращают CSRF в целом. Например, не все междоменные ajax-вызовы генерируют предполетный запрос, обычные POST-файлы этого не делают. Могут быть конкретные случаи, когда предполетные запросы действительно помогают снизить риск.

Другая проблема такая же, как при проверке ссылки/источника. Хотя злоумышленник не может переопределить референт или источник в простом Javascript на вредоносных веб-сайтах, возможно, это возможно, используя подходящий плагин для браузера, например, например, старую версию Flash. Если плагин браузера позволяет это сделать, злоумышленник может отправлять запросы с кросс-началом без предварительного полета. Поэтому вы не хотите полагаться только на предполетные запросы.

+0

«Например, не все межадресные вызовы ajax генерируют предполетный запрос, а обычные POST - нет». Почему нет? – ineedahero

+1

Вам не нужен ajax, чтобы сделать простой пост с перекрестным происхождением. Вы также можете использовать сообщение в простой форме, поэтому было бы не так важно ограничивать это. –

+0

Ох. Я вижу, что вы говорите. Мне было интересно, что ... почему предварительный полет CORS активируется для запросов PUT, но не для запросов POST? Так как вы говорите, что POST могут быть столь же опасны ... – ineedahero

 Смежные вопросы

  • Нет связанных вопросов^_^