요청 및 응답 콘텐츠에 JSON을 독점적으로 사용하는 웹 서비스를 구축하고 있습니다 (즉, 양식 인코딩 된 페이로드 없음).
다음과 같은 경우 웹 서비스가 CSRF 공격에 취약합니까?
POST
예를 들어 최상위 JSON 객체가없는 모든 요청{"foo":"bar"}
은 400으로 거부됩니다. 예를 들어POST
콘텐츠42
가 있는 요청은 거부됩니다.상관
POST
이외의 콘텐츠 유형의 요청application/json
, 예를 들어 400으로 거부된다는POST
콘텐츠 유형 요청application/x-www-form-urlencoded
따라서 거부 될 것이다.모든 GET 요청은 안전 하므로 서버 측 데이터를 수정하지 않습니다.
클라이언트는 세션 쿠키를 통해 인증되며, 웹 서비스는 JSON 데이터와 함께 POST를 통해 올바른 사용자 이름 / 암호 쌍을 제공 한 후 제공합니다
{"username":"user@example.com", "password":"my password"}
.
부수적 인 질문 : PUT
및 DELETE
요청이 CSRF에 취약한 적이 있습니까? 대부분의 (모든?) 브라우저가 HTML 양식에서 이러한 메서드를 허용하지 않는 것 같아서 묻습니다.
편집 : 항목 # 4를 추가했습니다.
편집 : 지금까지 좋은 댓글과 답변이 많지만,이 웹 서비스가 취약한 특정 CSRF 공격을 제공 한 사람은 없습니다.