URL Kommandos ergeben HTTP 400 ohne csrf-Token

Begonnen von globus243, 20 März 2017, 18:43:01

Vorheriges Thema - Nächstes Thema

globus243

Guten Abend,

ich hatte mir für meine Pebble eine kleine App gebaut, die es mir erlaubt einige Geräte in FHEM zu steuern.
Geschaltet wurden die Geräte über einen URL Aufruf z.b. https://user:password@FHEMHOST/fhem?cmd=set%20Home_Status%20Away
Das klappt nun nicht mehr.

Mit den Chrome-Entwicklertools konnte ich herausfinden, das dort immer HTTP Fehler 400 zurück kommt und das der Unterschied zwischen meinen Requests und
denen von FHEM der csrf-Token ist.
Nach dem ich den dann in meine Requests mit rein genommen hatte, klappte es wieder.

nun meine Frage: Ist das Neu? Muss ich jetzt bei jedem FHEM Update die Tokens in "allen" meinen Apps ändern?

farion

#1
Hi,

das ist seit 5.8 "neu" bzw. eher "scharf". Wie du damit umgehst steht hier: https://wiki.fhem.de/wiki/CsrfToken-HowTo

Soweit ich deinen Fall überblicke steuerst du per URL-Aufruf von Extern. Damit wäre eine Lösung das CSRF-Token fix zu setzten. Ansonsten wird bei jedem FHEM-Neustart ein neues Token generiert.
Das geht wie im HowTo von oben beschrieben so:

attr WEB.* csrfToken <DeinFestesToken>


Eine andere Lösung wäre das Feature ganz abzuschalten (würde ich nicht empfehlen). Oder eben das Token automatisch zu aktualisieren. Aber da ist die Frage ob das mit deinem externen Tool funktioniert.

Gruss Frieder
Fhem5.8@Raspi3|~70xHomematic|KM271|1Wire|DoorPi mit DoorPiBoard|GarageDoorSingleButton|Graphite

betateilchen

Zitat von: globus243 am 20 März 2017, 18:43:01
nun meine Frage: Ist das Neu? Muss ich jetzt bei jedem FHEM Update die Tokens in "allen" meinen Apps ändern?

Den knallroten Hinweis oben rechts auf der Seite hast Du gesehen? Und gelesen?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!