FHEM Forum

FHEM => Frontends => FHEMWEB => Thema gestartet von: binford6000 am 22 März 2021, 14:58:11

Titel: [erledigt] FHEMWEB WEB CSRF error: X-FHEM-csrfToken: csrf_123 ne csrf_123 for...
Beitrag von: binford6000 am 22 März 2021, 14:58:11
Hallo,
ich befülle aus einem Skript ein dummy:
...
token=$(curl -s -D - 'http://10.3.3.6:8083/fhem?XHR=1' | awk '/X-FHEM-csrfToken/{print $2}')
...
curl --data "fwcsrf=$token" http://10.3.3.6:8083/fhem?cmd=setreading%20bitwarden_backup_check%20mega%201 > /dev/null


Das hat auch bis Dato prima funktioniert. Jetzt funktionierts jedoch nicht mehr und es tauchen merkwürdige Fehlermeldungen im Log auf:

2021.03.22 14:27:21 3:  FHEMWEB WEB CSRF error: X-FHEM-csrfToken
csrf_280222287241197 ne csrf_280222287241197 for client WEB_10.3.3.4_51408 / command setreading bitwarden_backup_check mega 1. For details see the csrfToken FHEMWEB attribute.


csrf Token ist in der FHEMWEB Instanz nicht gesetzt, also auf random.
Mit festem Token zB. "1234" geht es ohne Fehler. Versteh ich nicht. Zumal der Vergleich ja "eq" sein soltte und nicht "ne" ... :o

Hab ich was übersehen? Habt ihr noch irgendwelche Ideen?

VG Sebastian

Titel: Antw:FHEMWEB WEB CSRF error: X-FHEM-csrfToken: csrf_123 ne csrf_123 for client WEB_
Beitrag von: rudolfkoenig am 22 März 2021, 18:52:41
Ich habe jetzt absichtlich was Falsches angegeben:
curl --data "fwcsrf=bla" 'http://...'
Im FHEM-Log steht
ZitatFHEMWEB WEB CSRF error: bla ne csrf_29441864531334 for client ...
D.h. $token enthaelt in deinem Fall nicht csrf_280222287241197 sondern "X-FHEM-csrfToken
csrf_280222287241197". Das ist zu viel.
Titel: Antw:FHEMWEB WEB CSRF error: X-FHEM-csrfToken: csrf_123 ne csrf_123 for client WEB_
Beitrag von: binford6000 am 22 März 2021, 19:14:59
Hmmm,
aus dem Skript echo $token liefert aber nur:
csrf_731446114004657
ohne X-FHEM-csrfToken. Das übersteigt leider meinen Bash-Horizont.  :(





Titel: Antw:FHEMWEB WEB CSRF error: X-FHEM-csrfToken: csrf_123 ne csrf_123 for client WEB_
Beitrag von: Otto123 am 22 März 2021, 21:21:57
Hi,

dein Script funktioniert bei mir - ich  meine an deinem FHEMWEB stimmt was nicht.
Zum einfachen nachstellen - Rudi muss irgendwas falsch gemacht haben?
ip=192.168.56.82
token=$(curl -s -D - "http://$ip:8083/fhem?XHR=1" | awk '/X-FHEM-csrfToken/{print $2}')
curl --data "fwcsrf=$token" http://$ip:8083/fhem?cmd=list%20global

Gruß Otto
Titel: Antw:FHEMWEB WEB CSRF error: X-FHEM-csrfToken: csrf_123 ne csrf_123 for client WEB_
Beitrag von: binford6000 am 23 März 2021, 08:54:28
Moin,
danke Otto für den Stubser:
attr WEB CORS 0
hat geholfen.

VG Sebastian
Titel: Antw:FHEMWEB WEB CSRF error: X-FHEM-csrfToken: csrf_123 ne csrf_123 for client WEB_
Beitrag von: Otto123 am 23 März 2021, 09:24:05
@Rudi
ZitatCORS
Wenn auf 1 gestellt, wird FHEMWEB einen "Cross origin resource sharing" Header bereitstellen, näheres siehe Wikipedia.
Bedeutet das im Umkehrschluss: default ist 0 und nicht vorhanden?

@Sebastian falls Du es etwas universeller und komfortabler magst https://github.com/heinz-otto/fhemcl
Allerdings mit der gleichen Technik die Du angewendet hast, also sicher auch mit dem gleichen Problem ;)

Viele Grüße
Otto
Titel: Antw:FHEMWEB WEB CSRF error: X-FHEM-csrfToken: csrf_123 ne csrf_123 for client WEB_
Beitrag von: rudolfkoenig am 23 März 2021, 09:28:47
ZitatBedeutet das im Umkehrschluss: default ist 0 und nicht vorhanden?
Ja.
Titel: Antw:FHEMWEB WEB CSRF error: X-FHEM-csrfToken: csrf_123 ne csrf_123 for client WEB_
Beitrag von: binford6000 am 23 März 2021, 12:02:18
Zitat von: Otto123 am 23 März 2021, 09:24:05
@RudiBedeutet das im Umkehrschluss: default ist 0 und nicht vorhanden?

@Sebastian falls Du es etwas universeller und komfortabler magst https://github.com/heinz-otto/fhemcl
Allerdings mit der gleichen Technik die Du angewendet hast, also sicher auch mit dem gleichen Problem ;)

Viele Grüße
Otto

Für mich ist das OK. Habe der "FHEM App" (welche CORS benötigt) eine eigene FHEMWEB-Instanz gegönnt.
https://github.com/jemu75/fhemApp#readme (https://github.com/jemu75/fhemApp#readme)
https://forum.fhem.de/index.php/topic,119470.0/topicseen.html (https://forum.fhem.de/index.php/topic,119470.0/topicseen.html)

VG Sebastian