FHEM Forum

FHEM => Frontends => FHEMWEB => Thema gestartet von: Simon74 am 03 März 2017, 23:08:37

Titel: FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: Simon74 am 03 März 2017, 23:08:37
Wie können neben "set,get" auch Funktionsaufrufe in 99_myUtils.pm erlaubt werden ?
Titel: Antw:FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: KernSani am 03 März 2017, 23:59:38
42?

Ich fürchte die Frage ist nicht präzise genug formuliert... Was genau ,möchtest du erreichen, bzw. was ist dein Problem?
Titel: Antw:FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: Simon74 am 04 März 2017, 00:05:25
Sorry wenn meine Sätze zu kurz sind  ;D
attr WEB allowedCommands get,set
Damit lässt sich dann per URL keine Function in myUtils mehr aufrufen a'la:
{Buero("on")}

Habe in der Commandref keine Hinweise darauf gefunden.
Wunsch:
attr WEB allowedCommands get,set,{*}



Titel: Antw:FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: KernSani am 04 März 2017, 00:12:18
ok, Frage verstanden, Sinn unklar... Wieso möchtest du die FHEMWEB-Funktionalität einschränken, aber gleichzeitig beliebige PERL Befehle (inkl. z.B. "system") erlauben? Das ist m.E: in etwa so, als würdest du deinem Kind verbieten, mit AA Batterien zu spielen und ihm statt dessen die 230 Volt Leitung geben... 
Titel: Antw:FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: Simon74 am 04 März 2017, 00:15:32
Unklar ?
Es geht hier nicht um die Haupt FHEMWEB Instanz sondern um eine eigene eingeschränkte Instanz die nur "set" und definierte Funktionen aus myUtils aufrufen können soll.
Titel: Antw:FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: CoolTux am 04 März 2017, 00:17:53
Zitat von: Simon74 am 04 März 2017, 00:05:25
Wunsch:
attr WEB allowedCommands get,set,{*}

Das wäre aber sehr schlecht. Da die FHEM Befehle auch nichts anderes sind wie Funktionen CommandGet($$) CommandSet($$) hättest Du wieder Vollzugriff.



Grüße
Titel: Antw:FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: KernSani am 04 März 2017, 00:22:41
"Definierte Funktionen" über Dummy/notify definieren und damit für "set" verfügbar machen?
Titel: Antw:FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: CoolTux am 04 März 2017, 00:29:12
Wäre ein gangbarer Weg.
Titel: Antw:FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: Simon74 am 04 März 2017, 00:29:39
Zitat von: KernSani am 04 März 2017, 00:22:41
"Definierte Funktionen" über Dummy/notify definieren und damit für "set" verfügbar machen?
Danke für die Idee, jedoch frage ich mich ob der Gedanke "Funktionsaufrufe in myUtils" bei "allowedCommands" vergessen wurde ?
Bevor ich das mache entferne ich die Einschränkung "allowedCommands" lieber wieder.

@Cooltux
Hast du den Beitrag über deinem gelesen ? Hat sich wohl überschnitten  :)

Titel: Antw:FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: CoolTux am 04 März 2017, 00:33:53
Zitat von: Simon74 am 04 März 2017, 00:29:39
@Cooltux
Hast du den Beitrag über deinem gelesen ?

Du meinst
Zitat
definierte Funktionen aus myUtils

Wüsste nicht wie man erkennen sollte das es eine Funktion ist die aus einer myUtils Datei kommt oder aus der fhem.pl. Intern sind es alles Perlfunktionen die includiert in die Main geladen werden.
Titel: Antw:FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: KernSani am 04 März 2017, 00:37:33
Ich frage mich, wieso du Funktionen über Kommandozeile aufrufen möchtest, die aber nicht irgendwie "normal" in FHEM verfügbar sind...
Titel: Antw:FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: Simon74 am 04 März 2017, 00:44:12
Zitat von: CoolTux am 04 März 2017, 00:33:53
Wüsste nicht wie man erkennen sollte das es eine Funktion ist die aus einer myUtils Datei kommt oder aus der fhem.pl. Intern sind es alles Perlfunktionen die includiert in die Main geladen werden.
Das wage ich mich nicht zu beurteilen.

Zitat von: KernSani am 04 März 2017, 00:37:33
Ich frage mich, wieso du Funktionen über Kommandozeile aufrufen möchtest, die aber nicht irgendwie "normal" in FHEM verfügbar sind...
Das versteh ich jetzt nicht  :)
Es geht um eine eingeschränkte FHEMWEB Instanz für Alexa-habridge die eben nur schalten können soll.
Da diese Aufrufe per URL an die Webinstanz gereicht werden, wäre eine Einschränkung auf set und meine definierten sub in myUtils doch sinnvoll oder ?
Mit dem Token wurde doch gewünscht das sich die Nutzer um die Sicherheit sorgen/kümmern, wollte ich soeben tun..  :)
Titel: Antw:FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: KernSani am 04 März 2017, 08:27:32
Zitat von: Simon74 am 04 März 2017, 00:44:12
Das versteh ich jetzt nicht  :)
Es geht um eine eingeschränkte FHEMWEB Instanz für Alexa-habridge die eben nur schalten können soll.
Ok, langsam verstehe ich (Habe mir gerade etwas HABridge Doku angesehen). Das heisst aber immernoch, dass du etwas in einer sub abgelegt hast, was Alexa können soll, was du aber nicht über FHEM Bordmittel schalten möchtest, richtig?
Titel: Antw:FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: rudolfkoenig am 04 März 2017, 09:38:39
In allowedCmd wird shell, perl und <FHEM-Befehl> ausgewertet.
Titel: Antw:FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: Simon74 am 04 März 2017, 10:36:21
@KernSani,
doch natürlich per FHEM Boardmitteln.

Also jetzt im Detail:
Damit ich csrfToken nicht im FHEMWEB deaktiveren muss, erstelle ich eine Instanz alleinig für die habridge und schränke die Instanz auf die IP-Adresse der habridge ein.
define WEBhabridge FHEMWEB 8088 global
attr WEBhabridge csrfToken none
attr WEBhabridge allowedCommands set
attr WEBhabridge allowfrom 127.0.0.1|192.168.1.10


192.168.1.10 ist die habridge die nun zB die Lampe erfolgreich schalten kann:
http://user:pass@fhem.domain.net:8088/fhem?cmd=set%20fl.di1_Sw%20on

Was aber mit der set Einschränkung nicht funktioniert ist zB. der Aufruf meiner SUB {Buero("on")} in myUtils.
http://user:pass@fhem.domain.net:8088/fhem?cmd=%7BBuero%28%22on%22%29%7D
Ohne allowedCommands funktioniert das.

Ich würde gerne erreichen das alle definierten SUBs in myUtils von allowedCommands erlaubt werden.

Habe zB. folgendes versucht, was so aber nicht funktioniert:
attr WEBhabridge allowedCommands set,{Buero()}

Meine Subs sehen so aus(und funktionieren wie gewünscht):
###############################################################################
# Büro (ein- und ausschalten)
###############################################################################
sub Buero($) {
my ($obj) = @_;
if ($obj eq "on" ){
  Log 1, "Büro (Ein)";
  #PC2 ein wenn PC1 schon läuft
  if (ReadingsVal("wol.pc1","state",undef) eq "on" and ReadingsVal("wol.pc2","state",undef) eq "off") { fhem("set wol.pc2 on"); }
  if (ReadingsVal("wol.pc1","state",undef) eq "off") { fhem("set wol.pc1 on"); }
  if (ReadingsVal("ku.sd2_Sw","state",undef) ne "off" and ReadingsVal("bo.tk1","state",undef) eq "closed") { fhem("define at_buero.led.on at +00:00:03 set po_Out2 on"); }
  }
else {
  Log 1, "Büro (Aus)";
  if (ReadingsVal("wol.pc1","state",undef) eq "on") { fhem("set wol.pc1 off"); }
  if (ReadingsVal("wol.pc2","state",undef) eq "on") { fhem("set wol.pc2 off"); }
  if (ReadingsVal("bo.ws1","state",undef) eq "on") { fhem("set bo.ws1 off"); }
  if (ReadingsVal("bo.sd2_SenPwr","state",undef)<15) { fhem("set bo.sd2_Sw off"); }
}
}
Titel: Antw:FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: rudolfkoenig am 04 März 2017, 11:51:05
ZitatIch würde gerne erreichen das alle definierten SUBs in myUtils von allowedCommands erlaubt werden.
Wenn ich was nicht uebersehen habe, dann muesste das mit
attr allowed_WEB allowedCommands perl,set
zu loesen sein. Wie einige hier vermerkt haben, ist durch "perl" eigentlich alles moeglich, d.h. die Einschraenkung ist aus Sicherheits-Sicht nicht sehr viel Wert. Beachte: allowedCommands in FHEMWEB legt automatisch eine allowed Instanz an, und ist eigentlich deprecated, steht auch so im commandref.
Titel: Antw:FHEMWEB allowedCommands, Funktionsaufrufe in 99_myUtils.pm ?
Beitrag von: Simon74 am 04 März 2017, 12:15:16
Rudi, danke für Aufklärung.
(Auch Cooltux, dessen Aussage ich erst jetzt verstanden habe, und Kernsani)
So verzichte ich auf allowedCommands, und gebe mich mit der IP Einschränkung zufrieden.

Ich habe nun die Haupt-Instanzen (WEB,WEBtablet,WEBphone) auf HTTPS umgestellt, was sicher mehr Sicherheit bringt.
HTTPS scheint diesmal problemlos zu funktionieren, beim letzten HTTPS Test (2014) war dies nähmlich noch nicht der Fall.