[erledigt] FHEMWEB WEB CSRF error: X-FHEM-csrfToken: csrf_123 ne csrf_123 for...

Begonnen von binford6000, 22 März 2021, 14:58:11

Vorheriges Thema - Nächstes Thema

binford6000

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


rudolfkoenig

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.

binford6000

Hmmm,
aus dem Skript echo $token liefert aber nur:
csrf_731446114004657
ohne X-FHEM-csrfToken. Das übersteigt leider meinen Bash-Horizont.  :(






Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

binford6000

Moin,
danke Otto für den Stubser:
attr WEB CORS 0
hat geholfen.

VG Sebastian

Otto123

@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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

rudolfkoenig

ZitatBedeutet das im Umkehrschluss: default ist 0 und nicht vorhanden?
Ja.

binford6000

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://forum.fhem.de/index.php/topic,119470.0/topicseen.html

VG Sebastian