HTTPAPI: API-Kommando zum Ausführen von Perl-Routinen

Begonnen von klaus.schauer, 25 März 2026, 18:02:22

Vorheriges Thema - Nächstes Thema

klaus.schauer

In dem Modul HTTPAPI habe ich bisher Aufrufe für set-Kommandos und zum Lesen und Schreiben von Readings und Internals bereitgestellt. Jetzt hätte ich auch Bedarf, um Perl-Routinen darüber zu starten. Etwa so:
http://<ip-addr>:<port>/<apiName>/exec?sub=<subname>&par1=<par1>&par2=<par2>...&parn=<parn>
Um den Zugriff auf die Perl-Routinen zu kontrollieren, würde ich eine Whitelist über ein Attribut z. B. subCtrl vorgeben.

Das Modul selbst nutzt als Basis die TcpServerUtils.

Wäre die Erweiterung aus Sicherheitsüberlegungen vertretbar oder sollte man andere Lösungen finden?

rudolfkoenig

ZitatWäre die Erweiterung aus Sicherheitsüberlegungen vertretbar oder sollte man andere Lösungen finden?
Soweit ich sehe, ist jetzt schon moeglich beliebige perl Ausdruecke per sog. "set magic" (https://fhem.de/commandref_modular.html#set) auszufuehren.

klaus.schauer

Zitat von: rudolfkoenig am 25 März 2026, 18:48:18
ZitatWäre die Erweiterung aus Sicherheitsüberlegungen vertretbar oder sollte man andere Lösungen finden?
Soweit ich sehe, ist jetzt schon moeglich beliebige perl Ausdruecke per sog. "set magic" (https://fhem.de/commandref_modular.html#set) auszufuehren.
Der "set magic" Aufruf von {(perlExpression)} per telnet ist wohl damit gemeint, oder? Wenn dem so ist, dann würde ein API-Aufruf das Sicherheitsniveau nicht verändern.