Являются ли веб-службы JSON уязвимыми для атак CSRF?
Я создаю веб-сервис, который использует исключительно JSON для своего контента запросов и ответов (то есть, никаких полезных нагрузок, закодированных в форме).
Is a web service vulnerable to CSRF attack if the following are true?
Any POST
request without a top-level JSON object, e.g., {"foo":"bar"}
, will be rejected with a 400. For example, a POST
request with the content 42
would be thus rejected.
Any POST
request with a content-type other than application/json
will be rejected with a 400. For example, a POST
request with content-type application/x-www-form-urlencoded
would be thus rejected.
All GET requests will be Safe, and thus not modify any server-side data.
Clients are authenticated via a session cookie, which the web service gives them after they provide a correct username/password pair via a POST with JSON data, e.g. {"username":"[email protected]", "password":"my password"}
.
Вспомогательный вопрос:PUT
а такжеDELETE
запросы когда-либо уязвимы для CSRF? Я спрашиваю, потому что кажется, что большинство (все?) Браузеры запрещают эти методы в формах HTML.
РЕДАКТИРОВАТЬ: Добавлен элемент № 4.
РЕДАКТИРОВАТЬ: Много хороших комментариев и ответов до сих пор, но никто не предлагал конкретную CSRF-атаку, которой уязвим этот веб-сервис.