Autor Thema: Nutzung des csrfToken - Anleitung?  (Gelesen 4910 mal)

Offline ManuZz

  • New Member
  • *
  • Beiträge: 10
Nutzung des csrfToken - Anleitung?
« am: 28 Februar 2017, 10:03:17 »
Hallo zusammen,

ich bin hier sicher der noobigste unter allen, aber ich habe keine Anleitung gefunden wie ich das csrfToken einbaue. Das auf none setzen hat einmal funktioniert. Nun bekomme ich ein neuen csrfToken Fehler im log angezeigt. sieht nach einem neu generierten Token aus.
Ich würde ja auch warten (auch wenn ich nicht weiß auf was, denn ich habe nirgends etwas gefunden wie ich das schöne Sicherheitsfeature einbaue), aber es sind alle meine Lichtschalter in der Wohnung lahmgelegt.

Ich habe in der config dies stehen:

attr WEB csrfToken none
attr WEBphone csrfToken none
attr WEBtablet csrfToken none

Aber bekomme immer noch den Fehler: FHEMWEB WEB CSRF error:  ne fhem_50100039103845.3. For detals see the csrfToken FHEMWEB attribute

Leider bin ich auch nicht der ultimative crack, darum habe ich keine Ahnung wie ich nun weiter komme. Ich habe hier im Forum auch nur gelesen das man es hätte einbauen sollen, aber nicht wie.
Für Hilfe wäre ich sehr dankbar...

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 17261
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #1 am: 28 Februar 2017, 10:15:45 »
Zitat
keine Anleitung gefunden wie ich das csrfToken einbaue
Wohin?

Falls man ueber FHEMWEB einen Befehl (cmd=...) von einem "Drittsystem" (nicht der Browser, der die FHEMWEB Seite aufgerufen hat) absetzen will, dann muss man fwcsrf=<TOKEN> setzen. <TOKEN> ist im HTTP Header als X-FHEM-csrfToken gesetzt, es gibt im HTML <body> Tag auch ein fwcsrf Attribut.

Falls man fuer FHEMWEB eine Seite generiert (z.Bsp. im Modul eigenen FW_detailFn), dann muss man an alle <a> Links mit cmd=... $FW_CSRF dranhaengen.

Beide Punkte betreffen normalerweise nur Programmierer.

"Normale" Benutzer sind nur dann betroffen, falls sie mit dem weblink Modul, htmlCode Variante FHEM-Befehle aufrufen, dann muss man $FW_CSRF dranhaengen.

Edit: Tippfehler korrigiert
« Letzte Änderung: 28 Februar 2017, 11:47:34 von rudolfkoenig »

Offline ManuZz

  • New Member
  • *
  • Beiträge: 10
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #2 am: 28 Februar 2017, 11:28:40 »
Ok, ich habe gerade eingesehen das ich überhaupt keine Ahnung habe. Ich werd glaub ich einfach ein Fallback auf die alte Version machen und alles dort nochmal einrichten und fhem einfach nie wieder updaten, da die Abschaltung in der config nicht funktioniert und ich das token nicht eingebaut bekomme. Dazu fehlen mir einfach die Kenntnisse.
Trotzdem danke für die Sicherheit.


Grüße

Falls jmd die Zeit und Nerven hat, freue ich mich trotzdem über Hilfe. Meine Links sehen so aus:

<td><div class="col3"><a class="button" onclick="macheRequest('http://192.168.178.30:8083/fhem?cmd.Steckdose3=set Steckdose3 on&amp;room=Wohnzimmer')"><p>AN</p></a></div></td>


Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 11722
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #3 am: 28 Februar 2017, 11:36:31 »
Ok, ich habe gerade eingesehen das ich überhaupt keine Ahnung habe. Ich werd glaub ich einfach ein Fallback auf die alte Version machen und alles dort nochmal einrichten und fhem einfach nie wieder updaten, da die Abschaltung in der config nicht funktioniert und ich das token nicht eingebaut bekomme. Dazu fehlen mir einfach die Kenntnisse.
Trotzdem danke für die Sicherheit.


Grüße

Falls jmd die Zeit und Nerven hat, freue ich mich trotzdem über Hilfe. Meine Links sehen so aus:

<td><div class="col3"><a class="button" onclick="macheRequest('http://192.168.178.30:8083/fhem?cmd.Steckdose3=set Steckdose3 on&amp;room=Wohnzimmer')"><p>AN</p></a></div></td>

Und werden von wo aufgerufen? Aus einem FHEM weblink Device oder von irgendwo anders her?
Mal mehr Info bitte damit man auch helfen kann.
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline rabehd

  • Full Member
  • ***
  • Beiträge: 315
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #4 am: 28 Februar 2017, 12:03:09 »
Ich hänge mich mal dran/rein, weil ich es auch noch nicht richtig verstanden habe.
Erstmal habe ich "attr WEB csrfToken none" gesetzt.

Ich sende Befehle per Tasker vom Handy.
Beispiel: http://ip.net:port/fhem?cmd.AnwesenheitXX=set%20AnwesenheitXX%20noda&XHR=1

Was muss ich ändern?

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 11722
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #5 am: 28 Februar 2017, 12:08:09 »
Entweder eigene Webinstanz erstellen und den Token auf none setzen und dann nur Tasker darauf zugreifen lassen.
Oder Du rufst einmalig vor jedem senden eine FHEM Webseite auf und extrahierst den Token.

Ich suche mal eine Anleitung raus, hatte da mal was gesehen.
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 11722
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #6 am: 28 Februar 2017, 12:10:57 »
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #7 am: 28 Februar 2017, 12:16:20 »
Beide Punkte betreffen normalerweise nur Programmierer.
Hi,

das stimmt so ja nicht. Es betrifft denjenigen, der einfach von irgendwo (z.B. zweiter PC im Heimnetz) per url etwas in FHEM setzen oder abfragen will.

Wenn man z.B. bisher von einer anderen Linux Maschine mit einem curl http://$host:8083/fhem?cmd=set%20$name%20$event > /dev/null
einen Dummy setzen konnte, geht das jetzt nicht mehr.
Es geht auch nicht, wenn ich an die obige url den aktuellen Token in der Art &fwcsrf=fhem_3450307859263.46 anhänge.
Den aktuellen Token kann man ja zu diesem Zweck einfach in der Startseite von FHEM im Quelltext sehen, da einige interne Links genauso konstruiert sind. Daher schließe ich auch mal Schreibfehler aus  ;)

Die url  http://$host:8083/fhem?cmd=set%20$name%20$event&fwcsrf=fhem_3450307859263.46
funktioniert zwar im Browser wie bisher, aber mit curl geht es überhaupt nicht, auch nicht mit wget - was habe ich sonst noch auf der Kommandozeile für Varianten?
Ganz abgesehen davon, dass ich noch nicht weiß, wie ich das Token aus der aktuellen FHEMWEB Seite auf der Kommandozeile extrahiert bekomme.

Gruß Otto
« Letzte Änderung: 28 Februar 2017, 12:19:33 von Otto123 »
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 11722
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #8 am: 28 Februar 2017, 12:19:06 »
In dem Du den Header parst wenn Du eine FHEMWEB Seite auf rufst. Zum Beispiel die Startseite.
http://<fhemIP>:8083/fhem?XHR=1
« Letzte Änderung: 28 Februar 2017, 12:21:58 von 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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #9 am: 28 Februar 2017, 12:24:10 »
parst
Kannst Du bitte ohne viel Aufwand einem der mit Powershell Kopierroutinen erstellen kann, mal ganz früher Turbopascal und Assembler programmiert hat und der shell und batch Routinen schreibt - dieses eine Wort noch etwas erweitern?    :-*

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Wuppi68

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1449
  • Wuppertaler Wimpelbeauftragter
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #10 am: 28 Februar 2017, 12:33:42 »
Powershell/Batch/Shell

für welches Sytsem brauchst Du das denn?
Jetzt auf nem I3 und primär Homematic

kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

Offline ManuZz

  • New Member
  • *
  • Beiträge: 10
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #11 am: 28 Februar 2017, 12:38:58 »
Zitat
Und werden von wo aufgerufen? Aus einem FHEM weblink Device oder von irgendwo anders her?
Mal mehr Info bitte damit man auch helfen kann.

Ich habe eine kleine Webseite auf meinen raspberry laufen (dort läuft auch fhem) und dort sind die die aufrufe eingepflegt.

Danke schonmal für die Hilfe!

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #12 am: 28 Februar 2017, 12:41:30 »
http://<fhemIP>:8083/fhem?XHR=1Die Zeile ergibt bei mir einen leeren Inhalt   ???

Ok ich kann einfach die Startseite holen und mit sed durchsuchen, ist das der Weg?

@wuppi68 ich habe auch noch Windows Rechner, eigentlich nur - außer meinen Himbeeren  8)

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Wuppi68

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1449
  • Wuppertaler Wimpelbeauftragter
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #13 am: 28 Februar 2017, 12:46:21 »
http://<fhemIP>:8083/fhem?XHR=1Die Zeile ergibt bei mir einen leeren Inhalt   ???

Ok ich kann einfach die Startseite holen und mit sed durchsuchen, ist das der Weg?

@wuppi68 ich habe auch noch Windows Rechner, eigentlich nur - außer meinen Himbeeren  8)

Gruß Otto

Also ich würde nach dem Token greppen und dann schauen wie ich das Teil am einfachsten extrahieren kann ... sed scheint mir ein wenig zu mächtig dafür - obwohl es dort auf jeden Fall auch geht
Jetzt auf nem I3 und primär Homematic

kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 11722
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #14 am: 28 Februar 2017, 13:06:15 »
http://<fhemIP>:8083/fhem?XHR=1Die Zeile ergibt bei mir einen leeren Inhalt   ???

Ok ich kann einfach die Startseite holen und mit sed durchsuchen, ist das der Weg?

@wuppi68 ich habe auch noch Windows Rechner, eigentlich nur - außer meinen Himbeeren  8)

Gruß Otto

Parsen ist Im Grunde einfach nur das auslesen nötiger Daten. Das kann man in Deinem Fall zum Beispiel mit mit grep machen und das Ergebnis als Variable zur Verfügung stellen.

Die Seite ist weiß aber der Quelltext sollte schon zu mindest den Header enthalten
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 11722
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #15 am: 28 Februar 2017, 13:16:07 »
Ich habe eine kleine Webseite auf meinen raspberry laufen (dort läuft auch fhem) und dort sind die die aufrufe eingepflegt.

Danke schonmal für die Hilfe!

Kannst Du mir sagen in welcher Sprache Du die Seite gemacht hast? php oder statisches HTML? Wüsstest Du wie man mittels JavaScript zum Beispiel Seiteninhalt abruft und nach Inhalten durchsucht?
Wenn nicht, mach es einfach so. Erstelle eine WEBINSTANZ die Du nur für Deine Aufrufe über die Webseite verwendest. Schaue Dir hierfür mal etwas genauer das allow Modul an. Hier kannst Du zugriffe auf Befehlsebene oder gar Deviceebene machen. Gibt glaube auch(vorsicht geraten) ein allowFrom wo Du die IP der Geräte die darauf zugreifen dürfen eintragen kannst.


Grüße
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 17261
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #16 am: 28 Februar 2017, 13:29:25 »
Zitat
Es geht auch nicht, wenn ich an die obige url den aktuellen Token in der Art &fwcsrf=fhem_3450307859263.46 anhänge.

Das geht sehr wohl, das Token aendert sich aber (wenn nicht explizit via csrfToken gesetzt) nach jedem FHEM-Start. Wenn man sich nicht die Muehe mit dem Parsen von HTTP-Header oder body-Tag antun will, dann kann man auch ein festes csrfToken setzen. Oder man definiert eine "API" FHEMWEB-Instanz, mit gesetzten allowfrom, und csrfToken none.

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 11722
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #17 am: 28 Februar 2017, 13:32:11 »
Das geht sehr wohl, das Token aendert sich aber (wenn nicht explizit via csrfToken gesetzt) nach jedem FHEM-Start. Wenn man sich nicht die Muehe mit dem Parsen von HTTP-Header oder body-Tag antun will, dann kann man auch ein festes csrfToken setzen. Oder man definiert eine "API" FHEMWEB-Instanz, mit gesetzten allowfrom, und csrfToken none.

Und ich denke mal das ist genau das was wir dem User ManuZz ans Herz legen sollten. So wie von mir geschrieben. Ist das einfachste. Mache ich genau so.
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #18 am: 28 Februar 2017, 13:55:33 »
Parsen ist Im Grunde einfach nur das auslesen nötiger Daten. Das kann man in Deinem Fall zum Beispiel mit mit grep machen und das Ergebnis als Variable zur Verfügung stellen.

Die Seite ist weiß aber der Quelltext sollte schon zu mindest den Header enthalten
Also meine Seite ist weiß und die Seite mit dem Quelltext auch  :-[

Was parsen als  Wort bedeutet war mir schon klar  :P ich wollte gerne eine Zeile Code  ;)

@Rudi Ja ok, mit curl geht es - habe ich jetzt herausgefunden. Das sich der Token jedesmal ändert war mir schon klar  ;)
Aber nicht einfach mit anhängen, sondern mit --datacurl --data 'fwcsrf=fhem_53905226430937.4' http://raspib:8083/fhem?cmd=set%20Aktor1%20offNur damit hier mal ein Beispiel für die Unwissenden steht  ;D

Die Sache mit dem "API WEB" ist sicher auch grundlegend ein guter und einfacher Gedanke. Ich werde dann mal etwas dazu ins Wiki stellen.

Jetzt muss ich nur noch parsen ...  8)

Gruß Otto
« Letzte Änderung: 28 Februar 2017, 13:58:41 von Otto123 »
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 11722
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #19 am: 28 Februar 2017, 14:04:37 »
Versuche mal ohne das ?XHR=1 damit geht es auf jeden Fall. Hast dann dummer Weise natürlich auch mehr Inhalt. Vielelicht hat Rudi da noch eine Idee.

Das mit dem bash Script kann ich mir ja mal anschauen. Sollte nicht schwer sein, aber ich bräuchte dafür etwas mehr Ruhe. Wird also bisschen dauern.
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 17261
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #20 am: 28 Februar 2017, 15:35:48 »
Muss man hier alles selber machen? :)

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}'`
War jetzt wirklich nicht so schwer. Getestet mit fhem.cfg.demo.

Zitat
Aber nicht einfach mit anhängen, sondern mit --data
FHEMWEB unterscheidet nicht zwischen POST (--data) und GET (URL) Parameter, man kann sogar mischen.

Zitat
Versuche mal ohne das ?XHR=1 damit geht es auf jeden Fall.
Mit &XHR=1 geht es auch, s.o. In diesem fall muss man den Token aus dem HTTP-Header rausfischen, ohne XHR=1 steht es auch im body. Wie ich das oben schon geschrieben habe.
Informativ Informativ x 1 Liste anzeigen

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 11722
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #21 am: 28 Februar 2017, 15:39:29 »
Muss man hier alles selber machen? :)

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}'`
War jetzt wirklich nicht so schwer. Getestet mit fhem.cfg.demo.
FHEMWEB unterscheidet nicht zwischen POST (--data) und GET (URL) Parameter, man kann sogar mischen.
Mit &XHR=1 geht es auch, s.o. In diesem fall muss man den Token aus dem HTTP-Header rausfischen, ohne XHR=1 steht es auch im body. Wie ich das oben schon geschrieben habe.

Oh man ich Honk. Stimmt ja, http Header steht ja nicht im File sondern ist Teil des Transportprotokolls. Danke Rudi für den Schups


Grüße
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #22 am: 28 Februar 2017, 17:43:07 »
Ok, kaum fragt man die richtigen Leute - funktioniert es auch :)

also der Trick beim curl ist einfach: man braucht die "" um die URL. Liegt scheinbar am & - wusste ich nicht. Also so geht es:
curl "http://$host:8083/fhem?cmd=set%20$name%20$event&fwcsrf=fhem_3450307859263.46"
Und der Einzeiler um den Token zu lesen ist natürlich Spitze - danke. Wäre ich nie drauf gekommen.  :-[

Bei dem kompletten Einzeiler sagt er mir noch: curl: (3) Illegal characters found in URL
Das wird wohl an den `` liegen, kenne ich irgendwie. Da suche ich noch.

Danke und Grüße
Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Wuehler

  • Jr. Member
  • **
  • Beiträge: 95
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #23 am: 01 März 2017, 20:53:06 »
Hallo,

ich habe dazu einigermaßen passend zwei Themen:
1. für die, die ebenfalls perl-Scripte per cron aufrufen und daraus per http://myfhem/fhem?cmd... Werte in fhem setzen ein Stück Perl-Code zur Extraktion eines csrf-Tokens.
2. An die Cracks eine Frage:
In meinem Script rufe ich den Schul-Vertretungsplan meiner Tochter ab (inkl. Login und Navigation auf der Seite). Per cron wird das script 3x am Tag aufgerufen (alternativ über die UI) . Zu Beginn hatte ich den Code in meiner myUtils. Wenn ich andere Forum-Threads richtig verstanden habe muss man dabei darauf achten, das es keine blocking-HTTP-Requests gibt, da fhem sonst "steht". Ist mein Ansatz so i.O. oder würdet ihr das anders lösen?


use strict;
use warnings;
use POSIX;
use Modern::Perl;
use HTML::TableExtract;
use WWW::Mechanize;
use LWP::Simple;
use URI::Escape;

my %data=parseVertretungsplanURL();

sub getCSRFToken{
  my $token="";
  my $content=get("http://myfhem/fhem");
  die "Couldn't get it!" unless defined $content;
  my $index1=index($content,"fwcsrf=")+8;
  my $index2=index($content,"'",$index1);
  $token=substr($content,$index1,$index2-$index1);
  #print "\ncontent: ".substr($content,$index1-12,$index2-($index1)+5)."\n";
  #print "\ntoken: ".$token."\n";
  return $token;
}

sub parseVertretungsplanURL{

  my $token=getCSRFToken;
  get("http://myfhem/fhem?cmd.dummy_Vertretungsplan=set%20dummy_Vertretungsplan%20doUpdate%20inProgress&fwcsrf=".$token);
  my ($mech) = WWW::Mechanize->new();

  $mech->get('https://infoseite.de/login/');
 
  .....
  # durch Seiten durchnavigieren und Daten auslesen
  .....
 
  #Daten in FHEM aktualisieren:
  get("http://myfhem/fhem?cmd.dummy_Vertretungsplan=set%20dummy_Vertretungsplan%20b_Info%20".uri_escape($infost)."&fwcsrf=".$token);
  ... 
  get("http://myfhem/fhem?cmd.dummy_Vertretungsplan=set%20dummy_Vertretungsplan%20doUpdate%20done"."&fwcsrf=".$token);
  return %AllData;
}

Offline ManuZz

  • New Member
  • *
  • Beiträge: 10
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #24 am: 03 März 2017, 18:26:18 »
@CoolTux
Zitat
Kannst Du mir sagen in welcher Sprache Du die Seite gemacht hast? php oder statisches HTML? Wüsstest Du wie man mittels JavaScript zum Beispiel Seiteninhalt abruft und nach Inhalten durchsucht?
Wenn nicht, mach es einfach so. Erstelle eine WEBINSTANZ die Du nur für Deine Aufrufe über die Webseite verwendest. Schaue Dir hierfür mal etwas genauer das allow Modul an. Hier kannst Du zugriffe auf Befehlsebene oder gar Deviceebene machen. Gibt glaube auch(vorsicht geraten) ein allowFrom wo Du die IP der Geräte die darauf zugreifen dürfen eintragen kannst.

Ich hab ne html Seite - zu mehr bin ich nicht in der Lage. Hab heute probiert es auszulesen und einzusetzen aber ich bin nicht annähernd zum Erfolg gekommen. Ich nehme einfach die Fallback Möglichkeit auf Version 5.7. Hat gut funktioniert. Danke für die Mühe!

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 11722
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #25 am: 03 März 2017, 18:57:32 »
@CoolTux
Ich hab ne html Seite - zu mehr bin ich nicht in der Lage. Hab heute probiert es auszulesen und einzusetzen aber ich bin nicht annähernd zum Erfolg gekommen. Ich nehme einfach die Fallback Möglichkeit auf Version 5.7. Hat gut funktioniert. Danke für die Mühe!

Bitte mach es Dir nicht zu einfach. Den Token gibt es nicht ohne Grund.
Dann erstelle Dir lieber eine extra Webinstanz. Sichere sie mit https und Passwort und schaue Dir an was Du mit dem Device allow passend zur Webinstanz alles einstellen kannst.



Grüße
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 17261
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #26 am: 03 März 2017, 19:25:45 »
Oder csrfToken auf einen festen Wert setzen, und an dem FHEM Befehl &fwcsrf=festerWert ranhaengen.
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 11722
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #27 am: 03 März 2017, 19:28:29 »
Richtig. Ganz vergessen. Gibt auch einen festen Token. Danke Rudi.
So langsam schwirrt einen der Kopf von den ganzen Tokenkram   ;D
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline ManuZz

  • New Member
  • *
  • Beiträge: 10
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #28 am: 03 März 2017, 20:17:58 »
ich hab die fhem Installation nun endgültig zerlegt - ich muss nun das raspberry erstmal neu aufsetzen da nichts mehr geht und ich die Reste nicht losbekomme. ich werde dan version 5.7 nehmen - da ich nicht weiß wie man ein festen token wert setzt - und das die Sicherheit auch nicht hebt. ich finde es schade das solche features eingeführt werden ohne eine doku dazu. aber es erleichtert mich das ich nicht der einzige bin der hier am raten ist.
ich update dann halt erst wenn es hier neues gibt das so einfach ist das ich es auch umsetzen kann - schade ist das die einfache Abschaltung nicht funktioniert.
Und ich war dumm das ich das changelog nicht gelesen habe - aber es ist kein zustand das mein licht nicht funktioniert, es war schön etwas gebastelt zu haben das gute 3 jahre funktionierte.
Aber nun habe ich wieder 2 Tage lang etwas zu tun.

Offline Wuppi68

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1449
  • Wuppertaler Wimpelbeauftragter
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #29 am: 03 März 2017, 20:33:35 »
ich hab die fhem Installation nun endgültig zerlegt - ich muss nun das raspberry erstmal neu aufsetzen da nichts mehr geht und ich die Reste nicht losbekomme. ich werde dan version 5.7 nehmen - da ich nicht weiß wie man ein festen token wert setzt - und das die Sicherheit auch nicht hebt. ich finde es schade das solche features eingeführt werden ohne eine doku dazu. aber es erleichtert mich das ich nicht der einzige bin der hier am raten ist.
ich update dann halt erst wenn es hier neues gibt das so einfach ist das ich es auch umsetzen kann - schade ist das die einfache Abschaltung nicht funktioniert.
Und ich war dumm das ich das changelog nicht gelesen habe - aber es ist kein zustand das mein licht nicht funktioniert, es war schön etwas gebastelt zu haben das gute 3 jahre funktionierte.
Aber nun habe ich wieder 2 Tage lang etwas zu tun.

gerade wenn Du sowieso alle Neu machen willst, dann würde ich auf jeden Fall auf die aktuelle "Technik" umsteigen, also neuestes Linux, neuestes FHEM ... sonst wirst Du die Probleme nur in die Zukunft verschieben und die Erfahrung zeigt es uns immer wieder - es kommt immer mehr dazu :-)

Aktuell ist es alles noch überschaubar - und wenn Du das CFSR in den Griff bekommen hast, wirst Du bestimmt die nächsten Dinge deutlich leichter angehen können

Bedenke: Wissen bringt mehr Wissen
Jetzt auf nem I3 und primär Homematic

kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

Offline ManuZz

  • New Member
  • *
  • Beiträge: 10
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #30 am: 03 März 2017, 20:48:00 »
Mag sein das es irgendwann unüberschaubar wird - aber nach dem neu aufsetzen werde ich einfach nichts mehr updaten. Es gibt dann nur Gründe dagegen. Ausserdem hat es jahrelang funktioniert. Und da ich kein Zugriff von aussen habe, gibt es auch keine Sicherheitsprobleme.
Ich wünsche euch trotzdem viel Spaß bei der Weiterentwicklung des fhem. Es ist nur schade das nicht an Menschen gedacht wird die das nicht beruflich machen, bzw keine Programmierer sind. Bis hierher war es immer easy zu nutzen. auch die Einbindung der Heizung war einfach. Dumm ist halt wenn man durch ein Sicherheitsfeature nichts mehr nutzen kann. und es auch keine richtige Anleitung gibt wie man es als noob nutzen kann, bzw die Abschaltung einfach nicht funktioniert.

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 11722
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #31 am: 03 März 2017, 20:58:47 »
Es kommt selten vor, aber ich gestehe. Ich bin sprachlos.


Grüße
Leon
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #32 am: 03 März 2017, 21:30:52 »
Und da ich kein Zugriff von aussen habe, gibt es auch keine Sicherheitsprobleme.
Doch die gibt es, Du hast es bloß nicht verstanden.  :-X

Gerade jetzt, Wenn Du dies liest und im zweiten Tab dein FHEM offen hast.

Schönes Leben noch
Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline ManuZz

  • New Member
  • *
  • Beiträge: 10
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #33 am: 03 März 2017, 22:16:34 »
Was nicht vorkommt, ausser ich versuche mit neuen Features klarzukommen. Da ich dies nun aber aufgebe und die Funktionen über eine Html Seite steuere, scheint alles gut zu sein. Bisher hat mein fhem noch keiner gehackt... halte ich auch für sehr unwahrscheinlich.
Aber ist ja schön zu hören wie ihr alle gut damit zurechtkommt. Muss ja auch kein normaler Mensch nutzen können.

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #34 am: 04 März 2017, 17:30:25 »
Hallo ManuZz,

"Vogel Strauss" Systeme kenne ich zur Genüge, die bringen auf Dauer auch nicht den gewünschten "Frieden".

Warum Du Dir dein System "zerbastelt" hast lag bestimmt nicht am Update. Zumal Du auch ganz einfach hättest zurück gehen können.
Jetzt mit neu aufgesetztem System könntest Du auch ganz einfach trotz Version 5.8 vorübergehend auf featurelevel 5.7 schalten und die Zeit nutzen um Dir Wissen anzueignen.

Aber irgendwie wolltest Du ja alle Ideen zur Hilfe nicht wirklich.

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266
Zustimmung Zustimmung x 1 Liste anzeigen

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #35 am: 04 März 2017, 17:56:52 »
Muss man hier alles selber machen? :)

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}'`
noch mal zurück zum Thema. Ich versuche eigentlich mehrere Schritte zur "Problembewältigung" beim Nichtprogrammierer auszuarbeiten und in einen Wiki Artikel zu schreiben. Mir fehlt aber offenbar etwas an Wissen. Rudis Einzeiler bekomme ich so nicht hin. Es kommt zu unterschiedlichsten Fehlermeldungen, ich habe das Gefühl, das System gerät dabei scheinbar in unterschiedliche Zustände. Aber ziemlich stabil kommt bei der Verknüpfung der url "nach Rudi" die Ausschrift:
curl: (3) Illegal characters found in URL
Obwohl es, wenn ich den String mit echo ausgebe gut aussieht ->
curl http://raspib:8083/fhem?cmd=set%20Aktor1%20on&XHR=1&fwcsrf=fhem_36945614191211.9Diese Zeile dann wiederum ausgeführt bringt wechselnde Ausgaben in der Art:
pi@raspib3:~ $ curl http://raspib:8083/fhem?cmd=set%20Aktor1%20on&XHR=1&fwcsrf=fhem_36945614191211.9
[1] 26947
[2] 26948
Die einzige Variante die bei mir als Einzeiler geht ist die folgende, mit separater Übergabe des Tokens über --data :
curl --data "fwcsrf=$(curl -s -D - 'http://localhost:8083/fhem&XHR=1' | awk '/X-FHEM-csrfToken/{print $2}')" http://localhost:8083/fhem?cmd=set%20Office%20on
Diese könnte man in Scripten dann so verwenden, um bei mehreren Befehlen nicht jedes Mal den Token neu auszulesen:
token=$(curl -s -D - 'http://<host>:8083/fhem&XHR=1' | awk '/X-FHEM-csrfToken/{print $2}')
curl --data "fwcsrf=$token" http://<host>:8083/fhem?cmd=set%20Aktor1%20off

Soll ich das so in die Anleitung aufnehmen?

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Christoph Morrison

  • Full Member
  • ***
  • Beiträge: 132
    • Private Website
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #36 am: 04 März 2017, 18:27:18 »
noch mal zurück zum Thema. Ich versuche eigentlich mehrere Schritte zur "Problembewältigung" beim Nichtprogrammierer auszuarbeiten und in einen Wiki Artikel zu schreiben. Mir fehlt aber offenbar etwas an Wissen. Rudis Einzeiler bekomme ich so nicht hin. Es kommt zu unterschiedlichsten Fehlermeldungen, ich habe das Gefühl, das System gerät dabei scheinbar in unterschiedliche Zustände. Aber ziemlich stabil kommt bei der Verknüpfung der url "nach Rudi" die Ausschrift:
curl: (3) Illegal characters found in URL
Obwohl es, wenn ich den String mit echo ausgebe gut aussieht ->
curl http://raspib:8083/fhem?cmd=set%20Aktor1%20on&XHR=1&fwcsrf=fhem_36945614191211.9

Bei HTTP-Header-Feldern hängt immer CR (carriage return) LF (line feed) an. Deshalb sieht die Ausgabe zwar gut aus, aber übernimmt man Rudis Statement so, hängt man das CRSF-Token + CR + LF an den cURL-Aufruf an:

$ curl -s -D - 'http://fhem.example.org:8083/fhem&XHR=1' | awk '/X-FHEM-csrfToken/{print $2}' | od -c
0000000    c   s   r   f   _   1   5   9   3   0   5   1   6   3   7   5
0000020    3   9   7   7  \r  \n
0000026

Das hier funktioniert als Einzeiler:
curl "http://fhem.example.org:8083/fhem?cmd=set%20Office%20on&XHR=1&fwcsrf="`curl -s -D - 'http://fhem.example.org:8083/fhem&XHR=1' | awk '/X-FHEM-csrfToken/{print $2}' | tr -d "\r\n"`
Projekte:
FHEM-Patches: http://bit.ly/2jivXXu

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #37 am: 04 März 2017, 18:39:09 »
Danke Dir, sowas in der Art hatte ich auch gelesen, wusste als "Linux Schwacher" aber nicht wie man damit umgehen kann :)
| tr -d "\r\n"
Ok noch eine Frage: Ich wollte die Einrichtung eines API Webs Step by Step beschreiben, dabei ist mir aufgefallen: Wenn man in der Oberfläche ganz brav auf
attr <WEb Name> csrfToken geht und dort none reinschreibt und dann auf den attr Knopf drückt macht es wusch und man hat einen weißes Browser Fenster.
Nach zurück im Browser ist auch kein Eintrag passiert.
Ist das ein Sicherheitsfeature oder eine Bug?
Wenn man in der Kommandozeile attr WEBapi csrfToken none eingibt funktioniert alles wie gewünscht. Bei jedem definiertem WEB :)

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline JoWiemann

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1972
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #38 am: 04 März 2017, 18:46:21 »
Rudolf hat heute einen Fehler gefixt der auftrat, wenn das Web nicht Web hieß.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Offline Christoph Morrison

  • Full Member
  • ***
  • Beiträge: 132
    • Private Website
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #39 am: 04 März 2017, 18:47:07 »
Ok noch eine Frage: Ich wollte die Einrichtung eines API Webs Step by Step beschreiben, dabei ist mir aufgefallen: Wenn man in der Oberfläche ganz brav auf
attr <WEb Name> csrfToken geht und dort none reinschreibt und dann auf den attr Knopf drückt macht es wusch und man hat einen weißes Browser Fenster.
Nach zurück im Browser ist auch kein Eintrag passiert.
Ist das ein Sicherheitsfeature oder eine Bug?
Wenn man in der Kommandozeile attr WEBapi csrfToken none eingibt funktioniert alles wie gewünscht. Bei jedem definiertem WEB :)

Konnte ich eben mit brandaktuellem FHEM nicht reproduzieren.
Projekte:
FHEM-Patches: http://bit.ly/2jivXXu

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #40 am: 04 März 2017, 18:54:35 »
Coole Sache, tritt bei mir auch nicht mehr auf. Ich schwöre ich habe es an einem relativ kleinem Testsystem gehabt und habe gerade noch update gemacht (es trat vor und nach dem Update auf)
Und jetzt nicht mehr!  :-[
Ich schwöre ich habe noch nichts getrunken.

Naja gut, dann streichen wir das.

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #41 am: 04 März 2017, 19:47:31 »
So ich habe es jetzt einfach mal gemacht -> https://wiki.fhem.de/wiki/CsrfToken-HowTo
Jetzt könnt ihr mich hauen  8)

Das dünnste Brett steht ganz unten  :-X ich hoffe diese kurze Zusammenfassung ist im Sinne der Entwickler. Ich bin für jede Kritik dankbar!

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 11722
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #42 am: 04 März 2017, 19:56:51 »
Das mit dem FeatureLevel zurück drehen würde ich raus nehmen. Ist zu da es ja nur um den CSRF Token geht.
An sonsten wie immer saubere Arbeit Otto. Danke Dir. Eventuell findet sich noch der ein oder andere der ergänzen möchte.



Grüße
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 11722
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #43 am: 04 März 2017, 20:01:29 »
Fällt mir gerade ein. Fester Token geht ja auch. Könnte man noch erwähnen  :)
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #44 am: 04 März 2017, 20:11:33 »
Fällt mir gerade ein. Fester Token geht ja auch. Könnte man noch erwähnen  :)
Ja könnte man, aber macht es praktisch gesehen Sinn? Man müsste die URL auch ändern, man würde sich das Auslesen sparen. Aber ohne Eingriff bringt das nichts.

Ja das mit dem Featurelevel ist eigentlich ein anderes Thema, aber da macht man keinen Eingriff in der Definition des FHEMWEB. Und es ist vielleicht für den Ottonormal Nutzer am wenigsten suspect. Ich habe update gemacht, es geht was nicht, ich dreh schnell den Featurelevel zurück und muss kein restore machen.
Zeit zum lesen und nachdenken.

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 11722
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #45 am: 04 März 2017, 20:16:51 »
Eine andere Idee wäre noch eine eigene Wikiseite zum Thema FHEMWEB sicherer machen und da drunter dann das was du geschrieben hast. Dann macht auch die Sachen mit webapi oder webhook oder wie man das Kind auch nennen mag. Ausserdem Beispiele für allow. Angefangen von allowfrom bis hin zu allowCmd. Ist jetzt nur so spontan eine Idee. Sitze halt gerade wo wo einem so Ideen kommen  ;D
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier
Zustimmung Zustimmung x 1 Liste anzeigen

Offline JoWiemann

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1972
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #46 am: 04 März 2017, 20:19:14 »
Also bei mir kommt das SmartPhone nicht mit zum Königsörtchen, oder wo ist wo bei Dir  ;D

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 11722
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #47 am: 04 März 2017, 20:31:38 »
Genau da. Tablet im Bad. Kein Smartphone
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Benni

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1605
  • FHEMinist
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #48 am: 04 März 2017, 21:13:54 »
Das mit dem festen csrfToken würde ich auf jeden Fall noch einbauen. Ist vom Handling fast so einfach, wie none, da man damit auch statische Links bauen kann. Ist aber auf jeden Fall schon mal sicherer, als none.

Und im ersten Einzeiler im Wiki-Artikel fehlt am Ende das String-Abschußzeichen:

curl -s -D - 'http://localhost:8083/fhem&XHR=1' | awk '/X-FHEM-csrfToken/{print $2}'
FHEM (FL 9.9) (configDB+DbLog) auf Debian Wheezy.
Jede Menge HM mit 2x HMUART (WeMos+esp-link) über VCCU.
UniRoll an CUL868. Sebury F2-2 RFID über ESPEasy
Module: 98_rssFeed und 98_QRCode

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #49 am: 04 März 2017, 21:52:29 »
Ich habe das mit dem festen Token eingebaut und den Fehler korrigiert.

Weiß jemand ob meine Definition des Tokens stimmt? Gibt es Einschränkungen in Zeichen und Länge?

Mit dem Titel des Artikel habe ich ne Weile gehadert, die Idee mit FHEMWEB sicherer machen ist auch nicht schlecht. Für dieses Thema finde ich mich noch nicht fit genug, aber ich bin ja lernfähig. Und es gibt ja noch andere Autoren  ;)

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266
Zustimmung Zustimmung x 1 Liste anzeigen

Offline Christoph Morrison

  • Full Member
  • ***
  • Beiträge: 132
    • Private Website
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #50 am: 04 März 2017, 22:27:08 »
Noch ein kleiner Hinweis:
curl -s -D - 'http://localhost:8083/fhem&XHR=1' | awk '/X-FHEM-csrfToken/{print $2}'
solllte

curl -s -D - 'http://localhost:8083/fhem?XHR=1' | awk '/X-FHEM-csrfToken/{print $2}'
sein. Der Query-String sollte durch ein Fragezeichen vom abs_path getrennt sein.

--data sollte auch eher --data-raw sein, falls jemand auf die glorreiche Idee kommt, ein festes CSRF-Token zu setzen (und zu schicken) das mit @ oder - beginnt.

Ich würde mir auch überlegen, den tr-Aufruf aus meinem Beispiel einzubauen. Wenn jemand den Code aus dem zweiten Code-Block verwendet um einen GET-Request zu machen (--data impliziert POST), stirbt cURL mit Fehler Nr. 3: Illegal characters found in URL
Projekte:
FHEM-Patches: http://bit.ly/2jivXXu

Offline Wuppi68

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1449
  • Wuppertaler Wimpelbeauftragter
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #51 am: 04 März 2017, 23:02:47 »
und noch ein Tip an Otto123

wenn in einer Shellzeile Sonderzeichen vorkommen müssen diese escaped werden ....

& schickt den Prozess in den Hintergrund ... \& ist es dann escaped und von den & gibt es noch viel mehr ;-)
Jetzt auf nem I3 und primär Homematic

kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

Offline Christoph Morrison

  • Full Member
  • ***
  • Beiträge: 132
    • Private Website
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #52 am: 04 März 2017, 23:07:28 »
und noch ein Tip an Otto123

wenn in einer Shellzeile Sonderzeichen vorkommen müssen diese escaped werden ....

& schickt den Prozess in den Hintergrund ... \& ist es dann escaped und von den & gibt es noch viel mehr ;-)

Auf der Wikiseite sind doch alle & in Quotes. Oder übersehe ich was? Dann wird die Shell den Prozess auch nicht in den Hintergrund schicken.
Projekte:
FHEM-Patches: http://bit.ly/2jivXXu
Zustimmung Zustimmung x 1 Liste anzeigen

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #53 am: 04 März 2017, 23:12:41 »
Kaum schreibt man konkrete Sachen auf, kommen auch konkrete Hinweise  8)

Dein Beispiel wollte ich sowie noch ergänzen  ;) Ich musste mich erstmal um die Formatierung kümmern. Damit nicht alles als Link dargestellt wird.

Die Sache mit dem Fragezeichen: Da ist das was zurück geliefert wird stark unterschiedlich, also mit &XHR=1 wird irgendwie alles in verkürzter Form geliefert(genau genommen Content-Length: 0).
Der Token ist im Header aber immer enthalten.

Ich habe raus gefunden das XHR für xmlhttprequest steht, der Rest ob jetzt & oder ? richtiger/besser ist, erschließt sich mir nicht.

Wenn mit & der unnötige Inhalt der Seite unterdrückt wird, sähe ich dies als Vorteil.

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Christoph Morrison

  • Full Member
  • ***
  • Beiträge: 132
    • Private Website
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #54 am: 04 März 2017, 23:22:36 »
Die Sache mit dem Fragezeichen: Da ist das was zurück geliefert wird stark unterschiedlich, also mit &XHR=1 wird irgendwie alles in verkürzter Form geliefert(genau genommen Content-Length: 0).
Der Token ist im Header aber immer enthalten.

Ich habe raus gefunden das XHR für xmlhttprequest steht, der Rest ob jetzt & oder ? richtiger/besser ist, erschließt sich mir nicht.

? ist gemäß RFC2616 Section 3 richtig. & trennt Key-Value-Paare im Query String ab, leitet aber nicht den Query String ein. Sowas macht gerne bei WAF (nein, nicht bei den Weibern, Web Application Firewalls) Ärger.

Zitat
Wenn mit & der unnötige Inhalt der Seite unterdrückt wird, sähe ich dies als Vorteil.

FHEM macht keinen Unterschied zwischen ? und &; bei beiden kommt Content-Length=0 zurück. Aber ggf. Middleware wie ein Apache Reverse Proxy oder eine WAF. Und entspricht nicht dem Standard, den man einhalten sollte.
« Letzte Änderung: 04 März 2017, 23:24:29 von jeschkec »
Projekte:
FHEM-Patches: http://bit.ly/2jivXXu

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #55 am: 05 März 2017, 00:18:04 »
Ja irgendwie hast Du Recht, ich hatte vorhin einen Test da war das anders. Jetzt nicht mehr.  :-X

BTW Vorhin hatte ich, anderer Rechner damit "anderer" Browser, den Effekt mit "wusch und weiße Seite" bei attr csrfToken nochmal.
Eventuell habe ich einen Pumuckel in der Leitung.  :o

Also ändere ich jetzt noch &XHR=1 in ?XHR=1 und geh dann ins Bett  :D

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #56 am: 05 März 2017, 12:07:26 »
Moin,

gerade festgestellt, dass mit Token auf festen Wert setzen funktioniert nicht -> https://forum.fhem.de/index.php/topic,68291.msg599326.html#msg599326
Der Token wird nach einem neustart wieder von FHEM erzeugt, der gesetzte Wert wird ignoriert.
Zumindest bei dem Standard WEB 8083

Bei meinem selbst definiertem WEB und beim WEBphone 8084 und WEBtablet 8085  funktioniert der feste Token.
Ist das so gewollt?

BTW: ich habe immer mal wieder den Effekt, dass die Seite weiß wird wenn ich den attr Knopf für csrfToken drücke. Ich kann noch nicht klar sagen wie es dann verschwindet. Ich kann zumindest in diesem Moment oben in der Browser Zeile das WEB wechseln (von 8083 auf 8084 gehen) dann funktioniert es. Wieder zurück gewechselt funktioniert das dann auch.

Gruß Otto
« Letzte Änderung: 05 März 2017, 12:20:56 von Otto123 »
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Benni

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1605
  • FHEMinist
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #57 am: 05 März 2017, 12:16:37 »
Das sollte aber laut Commandref so funktionieren. Falls nicht müsste man ggf. mal Rudi darauf aufmerksam machen. Ich würde es in dem Fall als Bug bezeichnen.

Zitat von: Commandref#FHEMWEB
csrfToken
Falls gesetzt, wird der Wert des Attributes als fwcsrf Parameter bei jedem über FHEMWEB abgesetzten Kommando verlangt, es dient zum Schutz von Cross Site Resource Forgery Angriffen. Falls der Wert random ist, dann wird ein Zufallswert beim jeden FHEMWEB Start neu generiert, falls er none ist, dann wird kein Parameter verlangt. Default ist random für featurelevel 5.8 und größer, und none für featurelevel kleiner 5.8

In einem anderen Thread hat Rudi das feste Setzen ebenfalls als Möglichkeit aufgeführt: Ich kann ihn nur auf die Schnelle leider nicht finden

Das angezeigte Token csrf_429984230293756 kann nur entstehen, wenn man csrfToken nicht definiert hat, auf random oder genau diesen Wert gesetzt hat. Mit none wird sie nicht gesetzt und nicht geprueft. Habs gerade nochmal getestet.
« Letzte Änderung: 05 März 2017, 12:19:05 von Benni »
FHEM (FL 9.9) (configDB+DbLog) auf Debian Wheezy.
Jede Menge HM mit 2x HMUART (WeMos+esp-link) über VCCU.
UniRoll an CUL868. Sebury F2-2 RFID über ESPEasy
Module: 98_rssFeed und 98_QRCode

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 17261
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #58 am: 05 März 2017, 12:21:01 »
Ich habe es gerade getestet mit "attr WEB2 csrfToken testing", es funktioniert, auch nach restart, auch mit WEB als Name. Bitte prueft, dass ihr einen aktuellen FHEM benutzt.

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #59 am: 05 März 2017, 12:24:18 »
Ich habe:
Latest Revision: 13597

File              Rev   Last Change

fhem.pl           13593 2017-03-04 07:53:44Z rudolfkoenig
98_ArduCounter.pm 13487 2017-02-22 18:31:47Z StefanStrobel
98_autocreate.pm  11984 2016-08-19 12:47:50Z rudolfkoenig
98_DOIF.pm        13505 2017-02-24 17:17:06Z Damian
98_dummy.pm       12700 2016-12-02 16:49:42Z rudolfkoenig
91_eventTypes.pm  11984 2016-08-19 12:47:50Z rudolfkoenig
01_FHEMWEB.pm     13585 2017-03-03 08:26:40Z rudolfkoenig
92_FileLog.pm     13565 2017-03-01 15:54:06Z rudolfkoenig
91_notify.pm      13455 2017-02-19 17:44:25Z rudolfkoenig
73_PRESENCE.pm    13159 2017-01-20 21:33:39Z markusbloch
98_structure.pm   13485 2017-02-22 07:44:54Z rudolfkoenig
99_SUNRISE_EL.pm  12485 2016-11-01 15:18:51Z rudolfkoenig
98_telnet.pm      13443 2017-02-19 12:51:22Z rudolfkoenig
98_Text2Speech.pm 13351 2017-02-07 09:46:11Z Tobias.Faust
99_Utils.pm       13259 2017-01-28 17:39:39Z rudolfkoenig
98_version.pm     11987 2016-08-19 17:13:41Z markusbloch

Blocking.pm       12648 2016-11-24 12:15:25Z rudolfkoenig
DevIo.pm          12716 2016-12-05 09:11:31Z rudolfkoenig
HttpUtils.pm      13475 2017-02-20 19:33:48Z rudolfkoenig
Info.pm              28 2008-11-09 01:08:44Z dsully
RTypes.pm         10476 2016-01-12 21:03:33Z borisneubert
SetExtensions.pm  12935 2017-01-02 19:51:46Z rudolfkoenig
TcpServerUtils.pm 11908 2016-08-06 15:09:55Z rudolfkoenig

fhemweb.js                 13590 2017-03-03 18:32:12Z rudolfkoenig
fhemweb_colorpicker.js     13580 2017-03-02 13:03:29Z justme1968
fhemweb_readingsGroup.js   13580 2017-03-02 13:03:29Z justme1968
fhemweb_readingsHistory.js 13580 2017-03-02 13:03:29Z justme1968
fhemweb_uzsu.js            13580 2017-03-02 13:03:29Z justme1968
Und das Verhalten tritt nicht bei einem selbst definiertem WEB auf, sondern nur beim Standard WEB 8083!

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Benni

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1605
  • FHEMinist
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #60 am: 05 März 2017, 12:27:59 »
Ich hab's eben auch schnell getestet, allerdings nur mit einem selbst definierten FHEMWEB-Device, nicht mit dem Standard-Device und dort hat es funktioniert, wie erwartet.

Allerdings hatte ich dabei auch das von Otto schon mal beschriebene Problem, dass ich beim setzen mittels Attribut-"Assistent" in der FHEMWEB-Device-Detailansicht (also nicht über die FHEMWEB-Kommandozeile) *zack* auf einer leeren (weißen) Seite gleandet bin und das Attribut nicht gesetzt wurde.

Letztes Update war vor 2 Stunden ;)

Update: Bei mir funktioniert es auch mit dem Standard-FHEMWEB-Device WEB auf 8083!
@Otto: Save vergessen?
« Letzte Änderung: 05 März 2017, 12:30:24 von Benni »
FHEM (FL 9.9) (configDB+DbLog) auf Debian Wheezy.
Jede Menge HM mit 2x HMUART (WeMos+esp-link) über VCCU.
UniRoll an CUL868. Sebury F2-2 RFID über ESPEasy
Module: 98_rssFeed und 98_QRCode

Offline Benni

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1605
  • FHEMinist
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #61 am: 05 März 2017, 12:32:37 »
@Rudi: Kann man das Neu-Erzeugen des csrfToken auch zur Laufzeit irgendwie anstoßen, ohne FHEM neu zu starten?

Edit: Wenn ich das Attribut lösche passierte erst mal nichts, bzw. wird das CSRF-Token sogar erst mal komplett gelöscht. Wenn ich es dann explizit auf random setze, wird wieder eines generiert.
« Letzte Änderung: 05 März 2017, 14:30:19 von Benni »
FHEM (FL 9.9) (configDB+DbLog) auf Debian Wheezy.
Jede Menge HM mit 2x HMUART (WeMos+esp-link) über VCCU.
UniRoll an CUL868. Sebury F2-2 RFID über ESPEasy
Module: 98_rssFeed und 98_QRCode

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 17261
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #62 am: 05 März 2017, 14:39:55 »
@Otto:
Zitat
01_FHEMWEB.pm     13585 2017-03-03 08:26:40Z rudolfkoenig
Ist nicht aktuell.
Zitat
Und das Verhalten tritt nicht bei einem selbst definiertem WEB auf, sondern nur beim Standard WEB 8083!
Bitte sei hier genau. Ich habe gestern einen Bug gefixt, der bei nicht gesetzten csrfToken das nur fuer die FHEMWEB Instanz mit dem Namen WEB gesetzt hat.

@Benni:
Bin verwirrt. Tut es jetzt oder nicht? Ich habe kein Problem csrfToken in der FHEMWEB Detail Ansicht in der attr Zeile zu setzen.

Zitat
Kann man das Neu-Erzeugen des csrfToken auch zur Laufzeit irgendwie anstoßen, ohne FHEM neu zu starten?
Wenn man es auf "random" setzt, dann wird ein neuer Token generiert. Danach funktioniert zwar einiges immer noch (alle Links ohne cmd und alle set/get/attr Knoepfe, da sie im Fehlerfall csrfToken neu holen), aber die Links mit cmd drin (Edit files, Select style, Event monitor) nicht, deswegen empfehle ich nach sowas ein Reload der Seite im Browser. Duerfte selten vorkommen, will es deswegen nicht programmatisch behandeln.

Offline Benni

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1605
  • FHEMinist
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #63 am: 05 März 2017, 14:48:16 »
Rudi,

bei mir funktioniert es mit allen FHEMWEB-Instanzen, so wie erwartet und wie von dir Dokumentiert.
FHEM (FL 9.9) (configDB+DbLog) auf Debian Wheezy.
Jede Menge HM mit 2x HMUART (WeMos+esp-link) über VCCU.
UniRoll an CUL868. Sebury F2-2 RFID über ESPEasy
Module: 98_rssFeed und 98_QRCode

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #64 am: 05 März 2017, 18:33:59 »
Hallo Rudi,

ich dachte update von gestern ist aktuell und Du machst am WE frei  ;D
Alles gut mit der Version ->  01_FHEMWEB.pm     13599 2017-03-04 13:38:24Z rudolfkoenig funktioniert alles wie dokumentiert  :)

@Benni ich bin sehr froh das Du den Effekt auch hattest. Ich habe gestern gedacht mein Pumuckel  treibt arg Schabernack mit  mir. Ich hatte so viel unterschiedliche Effekte, irgendwann ist man nicht mehr sicher ob man nicht doch halluziniert.  :D

Ich hatte wie gesagt gestern früh update gemacht und dachte damit ist alles gut. Ja, und save hatte ich durchaus auch schon mal vergessen aber nicht heute früh. Nur update hatte ich heute früh "vergessen".  :-X

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #65 am: 05 März 2017, 18:55:33 »
Mir ist noch folgendes Verhalten aufgefallen, das soll aber weder Kritik oder Feature Request sein.

Man kann sich eigentlich (mit einer Ausnahme) auf das csrfToken verlassen was man nach einem Refresh in der Detailansicht des WEBs sieht.

Ausgangszustand:
attr nicht gesetzt - nach neustart FHEM -> zufälliges Token steht in den Internals und wird auch verwendet
attr auf <Wert> gesetzt -> das Token mit dem festen Wert wird sofort  in den Internals angezeigt und auch verwendet
attr auf none gesetzt -> attr wird angezeigt, die Anzeige der Internals ändert sich nicht (Token steht noch drin) es wird aber kein csrfToken verwendet
attr gelöscht -> es wird kein attr und kein Internal angezeigt (auch nach Browser Refresh nicht) und kein csrfToken verwendet
attr auf random gesetzt -> es wird das Token sofort in den Internals angezeigt und sofort verwendet.

Aus meiner Sicht zwei ganz leicht inkonsistente Zustände:
Wenn man nach Versuchen den "Original Zustand" wieder herstellt und das Attribute löscht wird das zufällige Token erst nach einem shutdown restart wieder verwendet.
Setzt man auf none wird kein Anzeigerefresh in den Internals durchgeführt.

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Benni

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1605
  • FHEMinist
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #66 am: 05 März 2017, 18:59:36 »
Otto,

ich kann den Pumuckl sogar reproduzieren  ;D

Wenn ich von meiner Standard-FHEMWEB-Instanz (WEB auf 8083) aus das csrfToken einer anderen FHEMWEB-Instanz mittels "attr"-Button im Device-Detail der anderen FHEMWEB-Instanz (WEBTEXT)  auf einen festen Wert (bspw. benni_1234567) setzen will, dann tritt der Wusch-Effekt der weißen, leeren Seite auf, also Ottos s.g. "Pumuckel" ;).
Das ist bei mir zuverlässig reproduzierbar.

Wenn ich dazu den Console-Log im Browser (btw. ich verwende Chrome) offen habe erhalte ich dabei folgende Ausgabe (s. Screenshot im Anhang)

Gleichzeitig erhalte ich im FHEM-Log folgenden Eintrag:

2017.03.05 18:49:01 3: FHEMWEB WEB CSRF error:  ne csrf_295575378963423. For detals see the csrfToken FHEMWEB attribute

Der darin genannte Token ist der korrekte Token meiner Standard FHEMWEB-Instanz:

Internals:
   CFGFN
   CONNECTS   210
   CSRFTOKEN  csrf_295575378963423
   DEF        8083 global
   FD         5
   NAME       WEB
   NR         3
   NTFY_ORDER 50-WEB
   PORT       8083
   STATE      Initialized
   TYPE       FHEMWEB

Da läuft wohl irgendwas mit den Tokens ziwschen den FHEMWEB-Instanzen schief.

« Letzte Änderung: 05 März 2017, 19:03:01 von Benni »
FHEM (FL 9.9) (configDB+DbLog) auf Debian Wheezy.
Jede Menge HM mit 2x HMUART (WeMos+esp-link) über VCCU.
UniRoll an CUL868. Sebury F2-2 RFID über ESPEasy
Module: 98_rssFeed und 98_QRCode

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #67 am: 05 März 2017, 19:08:38 »
Benni! exakt so ist es!

Aber:

nur wenn in der anderen Webinstanz nach einem Neustart noch kein attr csrfToken gesetzt war. Ich bekomme den Fehler
2017.03.05 19:04:54 3: FHEMWEB WEB CSRF error: csrf_21502981895379 ne csrf_214810837363824. For detals see the csrfToken FHEMWEB attribute
Mein WEB 8083 lief auf zufälligen csrfToken und mein WEBfest 8089 zu diesem Zeitpunkt auch.

Wenn man es einmal gesetzt hatte, dann tritt der Effekt nie wieder auf. Bis man das attr löscht, save macht  ;), neu startet und wieder versucht vom WEB 1 aus im WEB 2 das attr NEU zu setzen.


Gruß Otto
« Letzte Änderung: 05 März 2017, 19:10:38 von Otto123 »
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline Benni

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1605
  • FHEMinist
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #68 am: 05 März 2017, 19:18:04 »
nur wenn in der anderen Webinstanz nach einem Neustart noch kein attr csrfToken gesetzt war.

Es scheint bei mir keine Rolle zu Spielen, wie das beim Systemstart gesetzt ist.
FHEM (FL 9.9) (configDB+DbLog) auf Debian Wheezy.
Jede Menge HM mit 2x HMUART (WeMos+esp-link) über VCCU.
UniRoll an CUL868. Sebury F2-2 RFID über ESPEasy
Module: 98_rssFeed und 98_QRCode

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 17261
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #69 am: 05 März 2017, 19:19:12 »
Zitat
Wenn man nach Versuchen den "Original Zustand" wieder herstellt und das Attribute löscht wird das zufällige Token erst nach einem shutdown restart wieder verwendet.
Das habe ich gerade gefixt.

Zitat
Setzt man auf none wird kein Anzeigerefresh in den Internals durchgeführt.
Das hat mit der Unvollkommenheit der fhemweb XHR Handling zu tun: fhemweb.js laedt die Seite nicht neu, wenn er meint, das gerade Geaenderte wird per longpoll eh gemeldet. Aenderungen an Internals werden aber nicht gemeldet.

Wenn ich wg. dem "Pumuckl" was machen soll, dann meldet euch nochmal mit einer Beschreibung, was ich auch verstehe :)

Offline Benni

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1605
  • FHEMinist
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #70 am: 05 März 2017, 19:30:05 »
@Rudi:

Zur Reproduktion brauchst 2 FHEMWEB-Instanzen:

  • "WEB" auf Port 8083 mit csrfToken auf Random (Attribut csrf-Token nicht gesetzt bei Featurelevel 5.8 )
  • "WEBTEXT" auf beliebigem Port (bei mir auf 8093), ebenfalls ohne gesetztes Attribut csrfToken

Du öffnest im Browser die FHEMWEB-Instanz "WEB" auf Port 8083 und öffnest darin die Detail-Ansicht des FHEMWEB-Device "WEBTEXT"

Du stellst das Attribut csrfToken auf einen fixen Wert ein, aber nicht per FHEMWEB-Kommandozeile, sondern über den Attribut-"Assistenten" (s. Screenshot)

Beim Klick auf den "attr"-Button passiert's dann.

Reicht das als Beschreibung?


FHEM (FL 9.9) (configDB+DbLog) auf Debian Wheezy.
Jede Menge HM mit 2x HMUART (WeMos+esp-link) über VCCU.
UniRoll an CUL868. Sebury F2-2 RFID über ESPEasy
Module: 98_rssFeed und 98_QRCode
Zustimmung Zustimmung x 1 Liste anzeigen

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 17261
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #71 am: 05 März 2017, 23:25:12 »
Zitat
Reicht das als Beschreibung?
Ja. Das Problem hat nichts mit csrfToken zu tun gehabt, man hat es wohl nur deswegen gemerkt.
Der Bug ist stolze 4.5 Jahre alt. Habs gefixt & eingecheckt.

Offline Benni

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1605
  • FHEMinist
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #72 am: 06 März 2017, 07:06:05 »
Der Bug ist stolze 4.5 Jahre alt.

Dann kennen wir ja nun auch Pumuckls Alter ;D
FHEM (FL 9.9) (configDB+DbLog) auf Debian Wheezy.
Jede Menge HM mit 2x HMUART (WeMos+esp-link) über VCCU.
UniRoll an CUL868. Sebury F2-2 RFID über ESPEasy
Module: 98_rssFeed und 98_QRCode

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 7085
    • Otto's Technik Blog
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #73 am: 06 März 2017, 08:49:31 »
Guten Morgen,

dann ist der Bug ja älter als Rudis Account hier im Forum. Somit wurde an historischen "Originaldokumenten" gefixt?
Wann hat FHEM eigentlich Geburtstag?

 ;D

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi,HMLAN,HMUART,Homematic,Fritz!Box 7490,Sonos,ET9200,Arduino nano,ESP8266

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 17261
Antw:Nutzung des csrfToken - Anleitung?
« Antwort #74 am: 06 März 2017, 09:32:35 »
Sonntag.
Gefällt mir Gefällt mir x 2 Liste anzeigen