[gelöst]FHEM 5.8 und csrfToken

Begonnen von Jackson, 28 Februar 2017, 22:17:47

Vorheriges Thema - Nächstes Thema

Jackson

Nabend,

ich habe nun auf FHEM 5.8 aktualisiert. Nun bekomme aber folgendes ins Log

FHEMWEB WEB CSRF error:  ne fhem_48878403877029.3. For detals see the csrfToken FHEMWEB attribute

Das habe ich nun unterbunden, indem ich csrfToken über FHEMWEB auf 'none' gesetzt habe. Alexa oder ähnliche Dienste nutze ich nicht.

In der Freigabemitteilung https://forum.fhem.de/index.php/topic,67419.0.html war ja folgendes zu lesen:

Zitat

- csrfToken: dieses FHEMWEB Attribut verhindert CSRF Angriffe, indem alle FHEMWEB-Aufrufe, die einen FHEM Befehl ausfuehren, das Token spezifizieren muessen.
Fuer Benutzer bedeutet das ein Neuladen der FHEMWEB-Seite in Browser nach jedem FHEM-Neustart.
Fuer (verschlafene) Frontend-Modulentwickler: Der nach jedem FHEMWEB-Start zufaellig generierte Token wird im <body> als Attribut oder im HTTP-Header hinterlegt, und muss als fwcsrf Parameter angegeben werden.
Man kann es aber auch abschalten oder statisch konfigurieren.


Aber irgendwie erschließt das für mich nicht.  :o ??? Kann mir da einer helfen, worum es um bei dem Token geht.

Danke im Voraus

CoolTux

Irgendeine ThirdPart Anwendung greift auf Deine Webinstanz zu. Welche oder was genau das kannst nur Du wissen.
TabletUI oder ein anderes Frontend (Dashboard).
Tasker auf Android oder etwas ähnliches.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

betateilchen

Zitat von: Jackson am 28 Februar 2017, 22:17:47
Aber irgendwie erschließt das für mich nicht.  :o ??? Kann mir da einer helfen, worum es um bei dem Token geht.

https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

CoolTux

Frage mich gerade wie oft und wie lange noch danach gefragt wird. Es gibt mehr wie 7 Threads im Forum nur um CSRF Token und irgendwelchen Problemen. Dabei wurde allein im roten Link oben rechts und in den darin verlinkten Seiten schon alles geklärt. Aber niemand mag das lesen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Jackson

Zitat von: CoolTux am 28 Februar 2017, 22:44:50
Frage mich gerade wie oft und wie lange noch danach gefragt wird. Es gibt mehr wie 7 Threads im Forum nur um CSRF Token und irgendwelchen Problemen. Dabei wurde allein im roten Link oben rechts und in den darin verlinkten Seiten schon alles geklärt. Aber niemand mag das lesen.

Na, na nicht gleich so rum meckern. Die Suche im Forum habe ich sehr wohl bemüht. Ob es 7 Threads im Ergebnis waren, dass mag sein. Im Ergebnis hat mir die Antwort aber nicht gereicht. Auch die Erklärung der Freigabemitteilung oben rechts nicht. Und irgendein Thread zu wählen wo das Wort 'csrfToken' mal aufgetaucht ist, im irgendeinem Zusammenhang, der mir nicht hilft, lag mir auch fern. Zumal man in der Version 5.7 damit auch nicht konfrontiert wurde.

Zitat von: CoolTux am 28 Februar 2017, 22:27:23
Irgendeine ThirdPart Anwendung greift auf Deine Webinstanz zu. Welche oder was genau das kannst nur Du wissen.
TabletUI oder ein anderes Frontend (Dashboard).
Tasker auf Android oder etwas ähnliches.

Wie kann ich denn nun die ThirdPart-Anwendungen autorisieren? Denn das wird's nämlich sein, der Zugriff über http://.../fhem?cmd= ging nämlich nicht mehr.

Oder ist hier die Lösung auf csrfToken auf 'none' zu setzen? Das lässt sich nämlich nur erahnen aus dem 3 Eintrag von justme1968 in der Freigabemitteilung.

Danke schonmal vorab.


CoolTux

Um Dir hier helfen zu können muss man erstmal wissen wie/wo/womit Du den URL Aufruf durch führst.

Aus einem batch Script raus könnte das helfen

curl "http://localhost:8083/fhem?cmd=set%20Office%20on&XHR=1&fwcsrf"`curl -s -D - 'http://localhost:8083/fhem&XHR=1' | awk '/X-FHEM-csrfToken/{print $2}'`
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Jackson

Ich setze den Befehl in der Form ab

curl http://localhost:8083/fhem?cmd=setreading%20OUT.Bewegung%20current_file%20test

Ich probiere es heute abend mal mit dem Zusatz

&XHR=1&fwcsrf

aus und melde mich dann wieder.

laberlaib

Also ich fande den Hinweise mit dem "API-FHEMWEB" sehr nützlich (weiss nicht mehr, in welchem Thread das genannt wurde):
Zitat
Oder man definiert eine "API" FHEMWEB-Instanz, mit gesetzten allowfrom, und csrfToken none

Und wie man das allowfrom richtig macht:
https://forum.fhem.de/index.php?topic=23994.0
--
Proxmox, Homematic, G-Tags, Zigbee2MQTT, Rhasspy Sprachsteuerung im Aufbau (beta)

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Jackson

Zitat von: CoolTux am 01 März 2017, 14:34:05
Das kam von Rudi

https://forum.fhem.de/index.php/topic,68133.msg596011.html#msg596011

Grüße

Ok, Asche über mein Haupt.  :-[ Den Thread hätte ich eigentlich gestern finden müssen. Naja war schon spät:P