Как вопрос спрашивает, у меня есть общий сайт, использующий Jetty, и меня спрашивают о защите CSRF.Безопасность: В целом используется Content-Type достаточно для предотвращения CSRF?
Если у меня есть форма:
<form action="http://somedomain.com/somepage">
<input ....>
</form>
Мой вопрос: Если somepage принимает только тип содержимого: приложения/JSON, это достаточно, чтобы предотвратить CSRF? Я уверен, что мне нужно создать уникальный токен для каждого пользователя. Однако как кто-то сможет нарушить CSRF, если только защита осуществляется посредством типа контента?
Позднее добавление, потому что этот ответ кажется всплывающим с высокой оценкой Google ...: первая часть ответа является допустимым предупреждением, однако предполагается, что «enctype = application/json» использует ограничения одного и того же происхождения, по крайней мере согласно спецификации. –
Да, моя точка зрения была больше, чем полагаться на хорошо управляемых клиентов, а не на хорошо зарекомендовавших себя серверов, что помещает вас в потенциальную уязвимость. –
Несмотря на то, что мы производим поздние дополнения, а также для клиентов с хорошими отзывами, спецификация W3C Beacon обнаружила уязвимость в спецификации, которая довольно долгое время создавала Content-Type. У Chrome была уязвимая реализация - я не уверен в других браузерах. https://github.com/w3c/beacon/issues/16 – mirichan