Was...? Du traust mir nicht, und hast Angst, dass ich dein System beschädige ?
Ja, kann ich verstehen. Gehen wir also möglich Bedenken der Reihe nach durch.
- Du kannst getrost davon ausgehen, dass ich keine kriminellen Absichten habe. Dann wäre ich ja schön blöd, schliesslich ist das meine persönliche Adresse, die unter Kontakt angegeben ist. Bei meinem Hoster web-service4u.de musste ich mich ja immerhin klar identifizieren.
- Könnte ich für einen Geheimdienst arbeiten und dir irgendwelchen Spionagekram unterjubeln ? Eine recht spezielle Anwendungssoftware ist hierfür ungeeignet. Geheimdienste wollen jeden überwachen, also müssen sie auch Software infiltrieren, die jeder nutzt. natürlich fände ich es toll, wenn sich meine Software weit verbreitet, aber aus eher gegenteiligen Gründen. Ich selbst, mache mir was Unterwanderung durch Geheimdienste angeht, eher um die Linux-Community im Allgemeinen oder um Mozilla-Firefox Sorgen.
O.K., die paranoiden Ängste hätten wir damit abgehakt. Kommen wir zu realen Sicherheitsbedenken, zu gut deutsch, wie gut ist das Programm gegen Sicherheitslücken gefeit ?
- Die Software telefoniert nicht nach Hause, oder sonstwie in der Gegend 'rum. Sie baut wie gewünscht eine Verbindung zum Datenbankserver auf, und das war's.
- Es werden nur die SQL-Befehle SELECT, UPDATE ,INSERT und USE verwendet. Diese sind konsequent als Prepared-Statements formuliert, was SQL-Injection unmöglich macht.
- Für Pointer wurde eine Wrapper-Klasse geschaffen, die in der DEBUG-Version über alle Pointer Buch führt und bei Destruktion von Objekten, auf Dangling-Pointer prüft.
- Die beliebteste Sicherheitslücke ist immer noch der Buffer-Overrun. Warum diese noch existiert ist mir unverständlich. Wahrscheinlich weil auch in den bestem Betriebssystem-Distributionen noch irgendwo ein ranziges altes Stück Software rumliegt, in dem jemand eine hochgeniale, superschnelle in Assembler handgedengelte aber falsche Buffer-Anwendung eingebaut hat. Wenn man dagegen ausgereifte Standard-Bibliotheken wie hier z.B. Qt5 verwendet, kann das eigentlich kein Thema mehr sein.
- Command-Line-Injection ist theoretisch möglich wenn der Anwender die Konfigurationsdatei Frontend.conf böswillig manipuliert. Dort sind die Kommandozeilen für Dokumentendruck und Aufruf des Formulardesigners eingetragen. Die Software ersetzt die Platzhalter %file, %printer usw. durch die konkreten Argumente. Wenn man z.B. den Eintrag für den Print-Befehl Command_Print=libreoffice --pt %printer %file durch Command_Print=%printer ersetzt, kann man den Print-Befehl zum Aufruf beliebiger Kommandozeilen-Befehle missbrauchen. Dann ist man allerdings selber Schuld, wenn etwas schief geht.
Auch wenn ich die Software mit viel Muße und Liebe zu hoher Qualität und Usability nach dem klassischen Prinzip Gut Ding will Weile haben angefertigt habe, kann ich natürlich keinerlei Garantien abgeben und schließe hiermit jegliche Haftung aus.