Tommes
Well-known member
Paket Entwickler Demo - 3rdParty App für Synology NAS (DSM 7)
Mit der „DSM 7 Paket Entwickler Demo“ möchte ich allen ambitionierten als auch zukünftigen 3rd-Party Entwicklern eine mögliche Plattform für die Paketentwicklung des DiskStation Manager 7 von Synology anbieten. Dieses Framework basiert dabei auf der jeweils aktuellen, im DSM implementierten BASH Version sowie der textbasierten Auszeichnungssprache HTML. Weitere Script- und/oder Programmiersprachen wie CSS, JavaScript, AJAX, jQuery, Python, Perl etc. sind möglich, kommen hier jedoch nicht zum Einsatz. Grundlegende Abfragen und Routinen, um einen sicheren und reibungslosen Betrieb innerhalb des DSM zu gewährleisten, sind bereits implementiert und in den Scripten entsprechend kommentiert. Dazu gehört u.a. ...
- Systemberechtigungen (Privilegien)
Mit Einführung von DSM 7 erhält eine Anwendung (im folgenden App genannt) nur noch dann root Berechtigungen, wenn Synology dies explizit genehmigt. In allen anderen Fällen ist eine App dazu gezwungen, ihre Privilegien so weit zu senken, das diese nur noch mit stark eingeschränkten Benutzer- und Gruppenrechten auskommen muss. Um diese restriktiven Privilegien ein wenig zu lockern, besteht die Möglichkeit, die App in weitere Gruppen, wie z.B. der Gruppe der Administratoren aufzunehmen. Eine entsprechende Funktion zum hinzufügen bzw. entfernen wurde in die App integriert und kann optional über ein kleines Script angepasst und ausgeführt werden.
- Anwendungsberechtigungen (SynoToken)
Ist in der DSM Systemsteuerung der „Schutz gegen Cross-Site Request Forgery Attacken verbessern“ aktiviert, müssen sich DSM Apps am System mit einen entsprechenden Token (Synology nennt ihn SynoToken) authentifizieren. Ist das der Fall, wird der SynoToken innerhalb der App ausgewertet und mit dem QUERY_STRING SynoToken=[token] an die URL angehangen.
- Benutzerberechtigung (Authentifizierung)
Des Weiteren wird geprüft, ob ein, am DSM angemeldeter Benutzer existiert, ob dieser der Gruppe der Administratoren angehört und privilegiert ist, die App zu nutzen.
- GET-/POST-Request Engine
Implementierung einer GET-/POST-Request Engine um anfallende Formulardaten, Parameterübergaben und Seitenaufrufe zu verarbeiten, wobei sämtliche Formulardaten über die POST-Methode, an Links angegangene Variablen über die GET-Methode übertragen werden. Aus Gründen der Sicherheit werden alle übertragenen Variablen intern durch ein assoziatives Array maskiert bevor diese weiterverarbeitet werden.
- Spracheinstellungen
Die GUI ist für Mehrsprachigkeit ausgelegt und wird der Systemsprache des DSM angepasst.
Weitere Informationen zur Systemvoraussetzung, Installation und Konfiguration findet ihr auf meinem GitHub Repository:
https://github.com/toafez/DSM7DemoSPK
Lizenz
Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (nach Ihrer Option) jeder späteren Version.
Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der Datei GNU General Public License.