Autor Thema: [erledigt] FHEMWEB WEB CSRF error: X-FHEM-csrfToken: csrf_123 ne csrf_123 for...  (Gelesen 396 mal)

Offline binford6000

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1417
  • 🏠⚙️💡🛠📱
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

« Letzte Änderung: 23 März 2021, 12:03:04 von binford6000 »
Proxmox mit: nextcloud, fhem, pihole, docker, bitwarden, deconz, TasmoAdmin
fhem mit: deconz, Sonos2mqtt, alexa-fhem, homebridge, Signalbot, livetracking, fhemApp als Frontend
Testumgebung: docker pull fhem/fhem

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24153
Ich habe jetzt absichtlich was Falsches angegeben:
curl --data "fwcsrf=bla" 'http://...'Im FHEM-Log steht
Zitat
FHEMWEB 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.

Offline binford6000

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1417
  • 🏠⚙️💡🛠📱
Hmmm,
aus dem Skript echo $token liefert aber nur:
csrf_731446114004657
ohne X-FHEM-csrfToken. Das übersteigt leider meinen Bash-Horizont.  :(





Proxmox mit: nextcloud, fhem, pihole, docker, bitwarden, deconz, TasmoAdmin
fhem mit: deconz, Sonos2mqtt, alexa-fhem, homebridge, Signalbot, livetracking, fhemApp als Frontend
Testumgebung: docker pull fhem/fhem

Offline Otto123

  • Tester
  • Hero Member
  • ****
  • Beiträge: 18964
  • schon mal restore trainiert?
    • Otto's Technik Blog
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
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266

Offline binford6000

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1417
  • 🏠⚙️💡🛠📱
Moin,
danke Otto für den Stubser:
attr WEB CORS 0hat geholfen.

VG Sebastian
Proxmox mit: nextcloud, fhem, pihole, docker, bitwarden, deconz, TasmoAdmin
fhem mit: deconz, Sonos2mqtt, alexa-fhem, homebridge, Signalbot, livetracking, fhemApp als Frontend
Testumgebung: docker pull fhem/fhem

Offline Otto123

  • Tester
  • Hero Member
  • ****
  • Beiträge: 18964
  • schon mal restore trainiert?
    • Otto's Technik Blog
@Rudi
Zitat
CORS
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
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24153
Zitat
Bedeutet das im Umkehrschluss: default ist 0 und nicht vorhanden?
Ja.

Offline binford6000

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1417
  • 🏠⚙️💡🛠📱
@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
Proxmox mit: nextcloud, fhem, pihole, docker, bitwarden, deconz, TasmoAdmin
fhem mit: deconz, Sonos2mqtt, alexa-fhem, homebridge, Signalbot, livetracking, fhemApp als Frontend
Testumgebung: docker pull fhem/fhem

 

decade-submarginal