98_readingsWatcher Code Review

Begonnen von Wzut, 07 April 2020, 20:09:56

Vorheriges Thema - Nächstes Thema

Wzut

Zitat von: RichardCZ am 14 April 2020, 09:31:50
Die Diskussion über alte, zu alte und pathologisch alte Versionen werden wir nicht führen,
richtig , da wir in diesem Punkt nicht auf einen gemeinsammen Nennner kommen werden.
Wie ich an anderer Stelle schon schrieb, meine Module müssen auch noch auf einem Texas Instruments Ti99 Taschenrechner von 1977 laufen :) 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

RichardCZ

#16
Zitat von: Wzut am 14 April 2020, 09:36:48
richtig , da wir in diesem Punkt nicht auf einen gemeinsammen Nennner kommen werden.
Wie ich an anderer Stelle schon schrieb, meine Module müssen auch noch auf einem Texas Instruments Ti99 Taschenrechner von 1977 laufen :)

Memme! Difference Engine von Charles Babbage or die! Na gut, "wegen Corona" wollen wir gnädig sein und eine Zuse Z1 zulassen.

Mit "pathologisch alte" habe ich auf eine Situation angespielt wo der - eigentlich gut gemeinte - Support alter Versionen ins Gegenteil umschlägt und dem Nutzerkreis mehr schadet als nutzt.

Ich lese mir gerade die "neuere Doku" zu FHEM durch wo ein wenig auf der "headless Installation" rumgeritten wird, weil "potentielle Einfallstore" aber
https://www.cvedetails.com/vulnerability-list/vendor_id-1885/Perl.html unterschlägt man.

edit:

use List::Util 1.45 qw(uniq);

würde bei dem User vermutlich auch auf die Schnauze fallen, aber dann wenigstens mit einer Meldung a la:

xxx requires Version 1.45 of List::Util, this is 1.32

oder so ähnlich. Dann wüsste man wenigstens dass es das ist. List::Util ist mittlerweile bei 1.55
wenn er eine neuere hat als 1.45 dann wird das still übergangen. die Versionsangabe beim use ist "Mindestversion".

Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Wzut

User Feedback ist da :
ZitatRaspberry Pi 3B+ mit stretch
    This is perl 5, version 24, subversion 1 (v5.24.1)
Schon komisch, das ist 1:1 meine Testinsel .... ich kapiers nicht.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

RichardCZ

Zitat von: Wzut am 14 April 2020, 14:57:07
User Feedback ist da :Schon komisch, das ist 1:1 meine Testinsel .... ich kapiers nicht.

Ich vermute, Du hast List::Util via CPAN geholt schau mal welche Version Du hast.
So richtig kapieren tue ich das auch nicht, denn selbst eine 5.24.1 ist von 2017-irgendwas
und besagtes List::Util 1.45 gibt es ja seit 2016.

Wenn er kann, soll er

> cpan List::Util

in der Shell tippen. Wenn nicht, dann halt saurer Apfel und meine "own_uniq" mit ausliefern und die verwenden.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Beta-User

Zitat von: RichardCZ am 14 April 2020, 09:45:26
Ich lese mir gerade die "neuere Doku" zu FHEM durch wo ein wenig auf der "headless Installation" rumgeritten wird, weil "potentielle Einfallstore" aber
https://www.cvedetails.com/vulnerability-list/vendor_id-1885/Perl.html unterschlägt man.
Irgendwann wird die "neuere Doku" vermutlich auch bei "Never change a running system?!?" ankommen... Da wird dann (mMn.) wenigstens stehen: Nur wer wirklich (wirklich!) eine Insellösung hat, darf sich den "Luxus" gönnen, irgendeine Uralt-Murmel ohne updates laufen zu lassen. Für alle anderen gilt: regelmäßige updates auf allen Ebenen sind Pflicht! Und: jede SW birgt Fehlerrisiken, auch Perl selbst, und für den Rest gibt es noch "die Freiheiten der Programmierer" (das steht da als Arbeitstitel bzgl. diverser Themen, die u.a. auch Qualitätssicherung beinhalten, übrigens schon seit Monaten)...
(Btw.: die DAM-Frage nach Perlbrew hatte auch den Hintergrund, in dem pdf zu erklären, wie man als User ein möglichst aktuelles Umfeld generiert...).

Ansonsten gilt: eines nach dem anderen, und 80% (oder erst mal nur 20-40%) sind besser als nix...

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

RichardCZ

Zitat von: Beta-User am 14 April 2020, 15:26:45
Irgendwann wird die "neuere Doku" vermutlich auch bei "Never change a running system?!?" ankommen... Da wird dann (mMn.) wenigstens stehen: Nur wer wirklich (wirklich!) eine Insellösung hat, darf sich den "Luxus" gönnen, irgendeine Uralt-Murmel ohne updates laufen zu lassen.

wirklich³(tm)

Also ganz ohne Internet und HttpUtils und HTTPMOD. Man stelle sich nur vor, wenn ein Angreifer unter einer bestimmten URL hübschen präparierten Code hinterlässt und dann hat FHEM Werbung bei Heise Online "Schadcode legt hunderte Smarthome Systeme lahm..."

Ich weiß nicht was Debian alles an security Backports macht, aber bei plain Vanilla Perl < 5.28.1 ist halt bitter wenn man im Programm security-mäßig "alles richtig macht" und dann knackt Dir jemand mit präpariertem Text/Daten die regex Engine unterm Hintern weg und Du als Programmierer bist absolut machtlos.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Beta-User

Zitat von: RichardCZ am 14 April 2020, 16:06:41
wirklich³(tm)
Yep. Bei einem HTTPMOD, der "nur" ein lokales Gerät abgreift, mag es noch angehen, so bequem zu sein, aber ich hoffe, man versteht auch dieses Dokument am Ende in den wichtigen Teilen so: "Du kannst das ruhig so machen, aber dann isses Sch..." ("... und du hast kein Recht, irgendjemanden anderen für die angerichtete Sauerei verantwortlich zu machen...!").

Bei Debian 10 kam/kommt aktuell 5.28.1 mit, und meine Empfehlungstendenz (Achtung: DAAdmin (tm)...) geht dahin, spätestens nach 6-8 Monaten nach Erscheinen eines aktuelleren OS-Releasesauch einen update dahin anzudenken. Debian (und damit afaik auch raspbian) ist zwar nicht ultraschnell mit den updates bei der Hand, aber die wichtigen Dinge kommen und in der Regel
- funktioniert auch alles, was via apt-get aus dieser Quelle selbst kommt miteinander und
- sind OS-Versions-updates trotz allem "konservativ", man kommt mit recht wenigen Anpassungen aus (das letzte war init.d=>systemd, was wirklich FHEM-relevant war, aber auch nur deswegen, weil die Doku nicht gleich aktuell war, und DAU erst mal nach dem Startscript aaO. sucht...). Aber bei all meinen Umzügen war die OS-Basis eigentlich nie das Problem...

Bei der Gelegenheit dann gleich eine neue SD-Karte oder eine neue SSD zu nehmen, kann auch nicht schaden, ist ja nur alle 2-4 Jahre; doof ist nur, wenn jemand unbedingt meint, irgendwas spezielles mit dem Server anfangen zu müssen (GPIO-Nutzung, um ein völlig willkürliches Beispiel zu nennen...).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files