Authentizitätstoken in Rails 2 für Web-Services deaktivieren?

8

Anstatt nur das Formular in HTML auszufüllen, sollte es auch möglich sein, nur eine Post-Anfrage mit den Parametern zu senden. Ist es möglich, das Authenticity-Token auszuschalten, wenn zB das Accept-Flag auf 'application gesetzt ist / JSON 'im HTTP-Header?

    
Nils 08.12.2008, 09:15
quelle

3 Antworten

7

Der Request-Forgery-Schutz funktioniert auf der Basis der Überprüfung des Inhaltstyps von Anfragen und prüft nur die Anforderungen, die von einem Browser gestellt werden können. Kein Browser kann eine Anfrage generieren, bei der der Inhaltstyp beispielsweise auf "application / json" gesetzt ist. Aus diesem Grund wird die Routine zum Schutz vor Schienenfälschungen dies nicht überprüfen. Wenn Sie also eine JSON-Anfrage an Ihre Anwendung senden möchten, setzen Sie den Inhaltstyp-Header auf "application / json" und es sollte funktionieren.

    
Milan Novota 08.12.2008, 16:02
quelle
1

Ich weiß, dass es eine Möglichkeit gibt, es für einen Controller oder eine Aktion auszuschalten. Nicht sicher über den Inhaltstyp. Wäre es nicht einfacher, einfach den Authentizitätstoken zu jeder json-Anfrage hinzuzufügen? Es gibt ziemlich viele Artikel im Internet, wie man es macht (zum Beispiel hier und hier ).

    
Milan Novota 08.12.2008 11:24
quelle
-1
  

Wäre es nicht einfacher, das Authentifizierungs-Token zu jeder json-Anfrage hinzuzufügen?

Ja, aber dann müsste der Client zuerst eine Anfrage senden, nur um das Token zu bekommen, und dann eine andere mit der eigentlichen POST-Anfrage, was IMHO nicht Sinn macht.

    
Nils 08.12.2008 14:17
quelle

Tags und Links