Sind JSON-Webdienste anfällig für CSRF-Angriffe?
Ich erstelle einen Webdienst, der ausschließlich JSON für seinen Anforderungs- und Antwortinhalt verwendet (d. H. Keine formularkodierten Nutzdaten).
Ist ein Webdienst anfällig für CSRF-Angriffe, wenn Folgendes zutrifft?
IrgendeinPOST
Anfrage ohne JSON-Objekt der obersten Ebene, z.{"foo":"bar"}
wird mit einer 400 abgelehnt. Beispiel: aPOST
Anfrage mit dem Inhalt42
würde also abgelehnt werden.
IrgendeinPOST
Anfrage mit einem anderen Inhaltstyp alsapplication/json
wird mit einer 400 abgelehnt. Beispiel: aPOST
Anfrage mit Inhaltstypapplication/x-www-form-urlencoded
würde also abgelehnt werden.
Alle GET-Anfragen werdenSicherund daher keine serverseitigen Daten ändern.
Clients werden über ein Sitzungscookie authentifiziert, das ihnen der Webdienst gibt, nachdem sie über einen POST mit JSON-Daten, z.{"username":"[email protected]", "password":"my password"}
.
Zusatzfrage: SindPUT
undDELETE
Anfragen, die jemals für CSRF anfällig waren? Ich frage, weil es scheint, dass die meisten (alle?) Browser diese Methoden in HTML-Formularen nicht zulassen.
BEARBEITEN: Element 4 hinzugefügt.
BEARBEITEN: Viele gute Kommentare und Antworten, aber niemand hat einen bestimmten CSRF-Angriff angeboten, für den dieser Webdienst anfällig ist.