ThingWorx REST-API > Anforderungsmethode und Inhaltstypfilter für CSRF-Schutz aktualisieren
Anforderungsmethode und Inhaltstypfilter für CSRF-Schutz aktualisieren
Cross-Site Request Forgery (CSRF) ist ein web-basierter Angriff, der gefälschte Anforderungen im Namen eines ahnungslosen Opfers sendet. Wenn ein Benutzer aktuell bei einer Site authentifiziert ist und für das Senden eines böswilligen Befehls missbraucht wird, kann der Angreifer eine Statusänderungsanforderung mithilfe der Anmeldeinformationen des Opfers anfordern.
Weitere Informationen finden Sie über die folgenden Links:
Ein gängiger Verteidigungsmechanismus gegen CSRF-Angriffe ist die Verwendung synchronisierter Token. ThingWorx verwendet jedoch einen alternativen Ansatz und leitet stattdessen alle Anforderungen durch einen strengen Inhaltstypfilter. Dieser Ansatz ist genauso sicher, aber geeigneter für eine zustandslose Implementierung.
Anforderungsmethode aktualisieren
Standardmäßig kann die Anforderungsmethode nicht durch Anforderungsparameter geändert werden. Wenn Ihre Anwendung mithilfe dieser Vorgehensweisen entwickelt wurde, können Sie:
jeden Code entfernen, der eine GET-Methode in eine POST-Methode über Anforderungsparameter ändert. Dies ist die empfohlene optimale Vorgehensweise.
Legen Sie den Wert Anfrage-Methodenwechsel zulassen in der Plattform-Subsystem-Konfiguration auf true fest.
* 
Dies ist nicht die empfohlene optimale Vorgehensweise. Sie akzeptieren auf diese Weise, dass Sie Ihre Implementierung/Anwendung CSRF aussetzen.
Die Option Anfrage-Methodenwechsel zulassen ist veraltet und wird in zukünftigen ThingWorx Versionen entfernt.
Inhaltstypfilter
ContentTypeFilter wurde implementiert, um zu verifizieren, dass der Inhaltstyp in der Anforderungskopfzeile entweder application/json, application/xml oder text/xml für alle POST-, PUT- und DELETE-Methoden ist. Wenn die Anforderung multipart/form-data ist, prüft sie auf eine X-XSRF-TOKEN-Kopfzeile mit einem Wert TWX-XSRF-TOKEN-VALUE. Anforderungen für multipart/form-data dienen dem Datei-Upload.
Beim Hochladen von Dateien muss Ihr Browser das FormData-Objekt implementieren.
* 
FormData ist nicht in älteren Browsern (Internet Explorer 9 und niedriger) verfügbar, sodass das Hochladen von Dateien nicht in diesen Browsern funktioniert (einschließlich Entitäts- und Erweiterungsimporte), wenn ContentTypeFilter enthalten ist.
* 
Die Option Filter Content-Type kann im Plattform-Subsystem deaktiviert werden. Dadurch akzeptieren Sie jedoch, dass Sie Ihre Implementierung/Anwendung CSRF aussetzen.
Die Option Filter Content-Type ist veraltet und wird in zukünftigen ThingWorx Versionen entfernt. Nach dem Entfernen kann ein Administrator den Filter-Inhaltstyp nicht mehr deaktivieren.
Optimale Vorgehensweisen für CSRF-Schutz
Verwenden Sie die folgenden Richtlinien für CSRF-Schutz:
Bei der Entwicklung neuer Anwendungen sind alle Mashups in Composer sicher. Wenn Sie eine benutzerdefinierte Benutzeroberfläche verwenden, die auf ThingWorx über die REST-API zugreift, stellen Sie sicher, dass Sie keine Anforderung einschließen, die einen Methodenwechsel erfordert.
Wenn Sie neue Java-Erweiterungen entwickeln, stellen Sie sicher, dass alle neuen Dienste über das ThingWorx Dienstanmerkungsframework bereitgestellt werden. Dieses Framework ist für die Identifizierung, Zuordnung und Weiterleitung aller eingehenden Anforderungen an eine Implementierung eines Dienstes verantwortlich. Alle Dienste, die mit ThingWorx Dienstanmerkungen erstellt und verfügbar gemacht werden, sind vor CSRF sicher.
Im seltenen Fall, dass ein neuer Dienst das ThingWorx Anmerkungsframework umgehen muss, stellen Sie sicher, dass der Dienst nur auf die Methoden GET, POST, PUT oder DELETE reagiert.
Verwandte Links
War dies hilfreich?