Set Befehl per http über Browser an FHEM senden

Begonnen von nerothos, 02 März 2017, 19:34:11

Vorheriges Thema - Nächstes Thema

nerothos

Vielen Dank CoolTux für den Hinweis, verstehe ich, hast du recht, Sicherheit geht vor!

Aktuell habe ich es auch wieder aktiviert, wollte damit gestern auch erst mal was testen... dazu ist es denke ich der richtige weg bevor ich mir viel mühe mache alles korrekt und so sicher wie mögloch zu konfigureren um dann fest zu stellen das was ich vor habe geht gar nicht... generell steure ich mein Fhem nicht per Web Befehlen.... egal

Eine Frage zum Passwortschutz hätte ich aber noch, da ich den HTML Aufruf gestern nach deaktiveren des Tokens von meinem Browser aus gemacht habe mit dem ich schon autentifiziert war habe ich keine Abfrage nach Passwort bekommen... ist die Autentifizierung mit vorangestelltem user:pass@ denn richtig oder geht das nicht oder anders ?

CoolTux

#16
Guten Morgen,

Das sollte meines Wissens nach so gehen. Die Syntax für https und http Aufrufe stimmt jedenfalls so.


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.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ArduPino

Zitat von: CoolTux am 03 März 2017, 08:15:51
Guten Morgen,

Das sollte meines Wissens nach so gehen. Die Syntax für HTTPSRV und http Aufrufe stimmt jedenfalls so.


Grüße

Warum hast du zu meinem Beitrag : "Deine Entscheidung. Ich habe mein bestes getan" geschrieben ?
Oder war das nicht für mich ? Ich hatte ja auch geschrieben, das ich username und passwort mit in die URL gepackt habe und gefragt ob das Ok ist.

CoolTux

Zitat von: ArduPino am 03 März 2017, 16:57:46
Warum hast du zu meinem Beitrag : "Deine Entscheidung. Ich habe mein bestes getan" geschrieben ?
Oder war das nicht für mich ? Ich hatte ja auch geschrieben, das ich username und passwort mit in die URL gepackt habe und gefragt ob das Ok ist.

https://forum.fhem.de/index.php/topic,68314.msg598003.html#msg598003
Für Dich relevant ist der Teil was CSRF eigentlich ist.


Hier mal ein Beispiel zur Ausnutzung.
https://forum.fhem.de/index.php/topic,68314.msg598070.html#msg598070
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

ArduPino


ArduPino

Ich hatte noch eine ältere FHEM Version und nun ein Update gemacht.
LOG voll mit diesem csrfToken Einträgen.
Habe dann mal die verlinkten Beiträge gelesen.

Ok, es gibt diese Sicherheitslücke wenn da eine Böse Seite im Browser ist.
Jetzt wird aber einfach diesen "attr WEB csrfToken none" gesetzt...und dann ?
In FHEM 5.8 ist also eine Änderung vorgenommen worden, die die Sicherheit erhöht bzw. dieses "Böse Seite im anderen Tab" Problem löst.
Woher kommen denn nun diese LOG Einträge überhaupt ? Und warum ist dieses attribut nicht schon nach dem Update gesetzt...machen ja anscheinend eh alle die das nun im LOG stehen haben.

CoolTux

Zitat von: ArduPino am 03 März 2017, 20:03:04
Ich hatte noch eine ältere FHEM Version und nun ein Update gemacht.
LOG voll mit diesem csrfToken Einträgen.
Habe dann mal die verlinkten Beiträge gelesen.

Ok, es gibt diese Sicherheitslücke wenn da eine Böse Seite im Browser ist.
Jetzt wird aber einfach diesen "attr WEB csrfToken none" gesetzt...und dann ?
In FHEM 5.8 ist also eine Änderung vorgenommen worden, die die Sicherheit erhöht bzw. dieses "Böse Seite im anderen Tab" Problem löst.
Woher kommen denn nun diese LOG Einträge überhaupt ? Und warum ist dieses attribut nicht schon nach dem Update gesetzt...machen ja anscheinend eh alle die das nun im LOG stehen haben.

Sie machen es weil sie es nicht besser wissen. Sie haben auf dem Handy Tasker und greifen mit http request aufrufen auf ihr fhem zu. Andere verwenden diverse Frontends die noch nicht so weit sind. Dashboard oder TabletUI. Wobei TabletUI in Version 2.6 seit heute Morgen das komplett unterstützen sollte. Wir haben die Nacht da was gemacht.
Im Grunde musst Du nur überlegen was Du noch hast was eventuell auf Dein FHEMWEB zugreifen tut.
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

ArduPino

Ok, Tablet UI müsste ich dann mal aktualisieren...oder geht das automatisch beim normalen Update von fhem ?
Ich habe nur noch eine IP Camera. An die sende ich von FHEM per "GethttpFile" einige Werte und rufe von FHEM aus Werte von der Cam mit HTTPMod ab.
Zu FHEM selber wird nichts gesendet.
Schaltet dieses attribut denn diese neue Sicherheitsmaßname ab oder werden nur die Fehlermeldungen unterdrückt ?
Ich habe noch für meine Amazon Dash Buttons dieses "dasher" laufen. Da weiß ich aber gar nicht wie das ganze überhaupt funktioniert.

Also am besten prüfen was die Fehler verursacht und dann auf Updates warten ?

CoolTux

Abfragen von fhem aus zu anderen Geräten sind egal. Es geht um ?cmd Aufrufe als http request.
TabletUI ist nicht Bestandteil von FHEM. Keine Ahnung wie Du das installiert hast. Das musst Du bitte selber wissen.
CSRF auf none gesetzt für die entsprechende Webinstanz deaktiviert die Tokensicherheit.
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

ArduPino

Juhu ! Lag nur am Tablet Ui !
Und noch mal Juhuu.... sieht jetzt total anders aus ! Icon- und Textgrößen total verdreht :P
Egal, das hat man schnell wieder eingestellt.
Gute Gelegenheit das Design etwas zu überarbeiten.

ArduPino

Jetzt habe ich doch ein Problem und zwar mit meinem Amazon Dash Button.
Um diese abzufragen benutze ich dasher https://github.com/maddox/dasher
Nun habe ich wieder diese csrf Meldung im Log, wenn ich das crfsToken Attribut unter WEB lösche.

Es gibt ja aber noch ein WEBTablet.
Dort habe ich kein Passwort angelegt und das benutze ich auch nicht für Konfigurationen. Portweiterleitungen gibt es auch keine.
In diesem FHEMWEB habe ich nun das attrib csrfToken none  gesetzt.
Wäre das ok ?
Wenn nicht, kann man denn ein Token mit übertragen in einem HTTP Aufruf ? Oder wie löst man das ?

CoolTux

Das ist ein sehr guter Ansatz. Du kannst einen festen Token noch nehmen und diesen im Aufruf mit senden

https://wiki.fhem.de/wiki/CsrfToken-HowTo
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

ArduPino


Breaked

#28
Guten Morgen,

für die kurze Zwischenfrage möchte ich kein extra Thema öffnen.

Ich habe vor, den csrf token zu nutzen und nicht wie alle anderen einfach zu deaktivieren. Allerdings, selbst wenn ich einen festen einstelle, um so wieder http request von meinem Loxone zu FHEM senden zu können, funktioniert dies nicht mit der Anstellung des Token. Das ist ja hier ja ganz gut beschrieben.
Ich stelle quasi das WEB attribut auf einen festen Token alá " attr WEB.* csrfToken <beliebige Folge aus Zeichen und Zahlen>".
Doch FHEM nutzt, auch nach einem shutdown restart, immer noch eigene Tokens.

Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

Otto123

#29
Zitat von: Breaked am 05 März 2017, 09:48:10
Guten Morgen,

für die kurze Zwischenfrage möchte ich kein extra Thema öffnen.

Ich habe vor, den csrf token zu nutzen und nicht wie alle anderen einfach zu deaktivieren. Allerdings, selbst wenn ich einen festen einstelle, um so wieder http request von meinem Loxone zu FHEM senden zu können, funktioniert dies nicht mit der Anstellung des Token. Das ist ja hier ja ganz gut beschrieben.
Ich stelle quasi das WEB attribut auf einen festen Token alá " attr WEB.* csrfToken <beliebige Folge aus Zeichen und Zahlen>".
Doch FHEM nutzt, auch nach einem shutdown restart, immer noch eigene Tokens.
Moin,

nur zur Sicherheit nachgefragt, Du machst nach einem attr WEB.* csrfToken <beliebige Folge aus Zeichen und Zahlen> vor dem shutdown restart auch ein save?
Mir ist das nämlich komischerweise bei meinen Tests auch immer passiert.

Edit: Gerade probiert, Du hast Recht, der gesetzte Token hält nur bis zum nächsten shutdown restart. Er wird für das WEB sofort aktiv, bleibt als Attribute auch stehen, aber FHEM generiert nach shutdown restart einen neuen.
Bei einem selbst definiertem WEB funktioniert auch der gesetzte Token dauerhaft, so hatte ich gestern nämlich auch getestet.
Aus meiner Sicht ist dies nicht permanente Verhalten nur beim WEB 8083 so. bei 8084 und 8085 funktioniert es auch mit gesetztem Token.

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