Im Juni war ITWU auf der DNUG46 um sich umzuhören, was sich in der NotesDomino-Welt gerade so interessantes tut. Die Messe war vom 3. bis zum 5. Juni 2019 in Essen und sehr gut besucht. Wir fanden die Vorträge sehr spannend und man merkte grundsätzlich bei der Veranstaltung, dass viel Neues im Gange ist und eine breitere Fülle an Themen aufgefahren wurden, als zu Zeiten unserer letzten DNUG-Besuche – Domino ist und bleibt einfach eine spannende Plattform! Wir finden auch super, dass HCL wieder den Fokus auf die Security legt und es ist überwältigend, wie viel Elan HCL ins Produkt Domino steckt. Den Vorträgen nach können wir schon auf eine riesige Fülle an Möglichkeiten gespannt sein, die in Domino endlich eingebaut werden sollen und auf welche die Nutzer schon lange warten – z.B. Stichwort: ADSync.

Wir haben uns drei Vorträge herausgepickt, von denen wir euch in diesem Artikel berichten möchten:

- Making cool websites with Classic Notes

- Domino Query Language (DQL)

- Domino Webserver Security

 

Making cool websites with Classic Notes

Im Vortrag „Making cool websites with Classic Notes“ war der Clue des Ganzen, dass der Redner bei der Erstellung einer Notes-basierten Webseite ganz ohne Xpages ausgekommen ist und den Webseiten-Code in Formulare geschrieben hat. Diesen Code hat er dann später mit jQuery aus den Views auslesen lassen. Auf diese Weise konnte er die Vorteile von Notes (super schnelle Anwendungsentwicklung, einfache Integration von weiteren Tools wie JQuery, Bootstrap etc., Weltklasse No-SQL Datenbank, …) mit von Notes nicht unterstützten Tools vereinen, da auf diese Weise keine Validierung stattfindet und man prinzipiell im HTML-Code einbinden kann was man möchte.

-> Hier geht es zum vorgestellten Webseiten-Beispiel

Wir waren beeindruckt, wie gut die Beispiel-Webseite aussah. Allerdings sind uns auch Nachteile dieser Methode aufgefallen: z.B. bekommt man auf diese Weise ellenlange und unübersichtliche Views. Zudem ist unseren Kunden in der Regel die schnelle Erzeugung der gewünschten Anwendungsfunktionalität wichtiger als die Verschönerung der Eingabemasken – die Anwendungen sollen einwandfrei laufen, der Rest ist eher Nebensache. Und last but not least kann man den Code mit dieser Methode im Designer nicht debuggen – was für uns ein ziemlicher Schwachpunkt darstellt, weil dadurch nicht so leicht festgestellt werden kann, an welcher Stelle die Anwendung in einen Fehler läuft.

Quelle: Vortrag „Making cool websites with Classic Notes – Theo Heselmans https://dnug46.sched.com/event/LMOg/making-cool-websites-with-classic-notes

 

Domino Query Language (DQL)

Domino Query Language ist als zusätzliche Sprache mit Domino 10 hinzugekommen und dient dazu sich schnelle Datenbankabfragen (kurze Schreibweisen) zu konstruieren (z.B. zur Programmierung von Suchfunktionen). Ohne DQL muss man sich für Datenbankabfragen sehr lange query strings zusammenbauen um Daten einer zugrunde liegenden Datenbank abzurufen. DQL soll recht komplizierte Abfragen mit vielen Dokumenten in kurzer Zeit durchlaufen können und durch eine leicht verständliche Syntax sehr einfach sein, sodass kein Domino-spezifisches Wissen z.B. zu formular language benötigt wird. Da unsere Entwickler allerdings alle bisher noch auf Notes 9 entwickeln, können wir euch noch nichts über unsere eigenen Erfahrungen zu DQL erzählen. Nichtsdestotrotz finden wir, hört sich das Ganze wirklich super vielversprechend an!

Quelle: Vortrag „Domino Query Language (DQL) – John Curtis https://dnug46.sched.com/event/LMQK/domino-query-language-dql

 

Domino Webserver Security

Der Vortrag zur Domino Webserver Security war besonders spannend: Es wurden weit verbreitete Annahmen zu Sicherheitsaspekten von Webservern widerlegt, die wir übrigens in unserer jahrelangen Erfahrung schon leider viel zu oft gehört haben.

Die erste Annahme war, dass ein Webserver nicht gefunden werden kann, wenn dieser nicht öffentlich ist und somit nicht darauf zugegriffen werden kann. Allerdings wird das Web kontinuierlich gescannt und die Ergebnisse sind auf Webseiten wie z.B. „Shodan.io“ ohne Probleme einsehbar. Und sobald die IP Adresse bekannt ist, ist erstmal jeder Server angreifbar. Es ist also auch bei nicht-öffentlichen Webservern sinnvoll und nötig Sicherheitsfeatures zu aktivieren.

Der zweite Einwand war, dass ein Domino (Web-)Server ja recht spezifisch sei und deshalb nicht so leicht zu hacken ist. Die Entgegnung hierauf war, dass es mittlerweile für alles Toolkits gibt mit denen es nicht mehr notwendig ist, dass Hacker sich mit der Serverarchitektur z.B. eines Domino Servers auskennen müssen. Angriffe auf veraltete Systeme seien hier besonders einfach. Ungesicherte Domino Webserver sind also mit den entsprechenden Tools genauso angreifbar, wie gewöhnliche Webserver, besonders diejenigen mit veralteten Betriebssystemen.

In der dritten Fehlannahme ging es darum, dass auf die eigenen Webanwendungen ja nicht ohne weiteres zugegriffen werden könne. Es gibt allerdings in dieser Hinsicht einige mögliche Sicherheitslücken, wie z.B. rein clientseitige Validierungen, die grundsätzlich manipulierbar sind oder schlecht eingestellte Zugriffskontrollen (ACLs). Als Beispiel wurde gezeigt, wie bei einer Anwendung mit schlecht eingestellten ACLs mittels Übergabe von Befehlen über die URL Aktionen ausgeführt werden konnten (z.B. http://Host/Database/View/Document?DeleteDocument – löscht Dokument). Der URL-Befehl-Trick war besonders eindrucksvoll und auch eine Warnung: Wer seine ACLs nicht gut im Blick hat, riskiert nicht-autorisierte Datenbankzugriffe und -manipulationen – nicht nur im Web.

Annahme vier war, dass Verschlüsselung im internen Netz nicht wichtig sei.  Zu dieser Aussage wurde entgegnet, dass HTTP-Verbindungen sehr einfach über bestimmte Software, Hardwaresniffer oder selbst per Smartphone abhörbar sind, d.h. alles was über einen Webserver ausgetauscht wird, ist grundsätzlich abgreifbar. Zwar sind nicht alle Daten schützenswert, aber Nutzer- und Anmeldeinformationen sind es immer! Es ist also grundsätzlich besser auch intern SSL-Verschlüsselung einzusetzen.

Und last but not least die Annahme, dass es schon ausreicht, wenn die Nutzer ihre Kennwörter einmal im Monat ändern. Besser wäre als Admin nicht zu häufige Passwortwechsel zu erzwingen und vom Nutzer ein Passwort wählen zu lassen, welches sehr sicher und einzigartig unter seinen Passwörtern ist, anstatt eines seiner Standardpasswörter hochzuzählen (sind wir mal ehrlich, wer tut es nicht …). Hierzu muss man sagen, dass die Zertifizierung in Notes über die Notes ID schon sehr sicher ist. D.h. man kann einen Notes-Account nicht einfach so Hacken, denn dafür braucht man die Notes ID an die man nicht ganz so einfach kommt. Allerdings bleibt das Thema Passwortsicherheit auch in der Domino Umgebung weiterhin wichtig, allein wenn es um das Internet-Kennwort des Nutzers für Web-Anwendungen geht. Auf letztere kann man nämlich auch ohne Notes-ID zugreifen. So kann z.B. über die altbekannte Bruteforce-Methode versucht werden Zugriff bekommen: Per Script werden hier verschiedene Kennwörter-Nutzername-Kombinationen ausprobiert. So ein Angriff erfolgt meist über Kennwortlisten, welche z.B. nach einem Angriff auf Facebook oder Twitter im Netz auftauchen. Hat man auch woanders ein ähnliches Passwort passend zur selben Mailadresse gewählt, ist es nicht mehr ganz so schwer Passwörter zu knacken. Domino erlaubt per Default unendlich viele Login-Versuche, deshalb ist es sinnvoll als Gegenmaßnahme das sogenannte Internet Lockout im Server-Konfigurationsdokument zu aktivieren. Auf diese Weise deckelt man die möglichen Login-Versuche auf ein gesetztes Maximum.

Zudem sorgt eine hochgedrehte Passworthash-Einstellung intern dafür Nutzerpasswörter recht sicher zu speichern. Beim Passworthash handelt es sich um eine nicht zurückberechenbare Verschlüsselungsfunktion die Anwendung findet in Datensignaturen und der sicheren Ablage von Kennwörtern, in unserem Fall z.B. in der Ablage der Internet-Kennwörter der Nutzer im Domino Directory. Seit Domino 8 ist beispielsweise schon eine recht hohe Passworthash-Verschlüsselung auswählbar, die allerdings nicht standardmäßig eingestellt ist. Um die Passworthash-Einstellung anzupassen, kann man das Domino Directory öffnen und dann über „Actions“>“Edit Directory Profile“ zu den Konfigurationsprofil-Einstellungen gelangen.

Wenn ihr euch für spezifischer mit dem Thema Passwort-Hashes in Domino beschäftigen möchtet, kommt ihr hier auf einen sehr interessanten Artikel dazu.

Quelle: Vortrag „Domino – Webserversecurity – Markus Petzold“ https://dnug46.sched.com/event/LMOm/domino-web-security

 

Abschließend möchten wir nochmal unsere Freude darüber betonen, dass HCL wieder die Sicherheit von Domino als eine seiner großen Stärken aufgreift und daran weiterarbeitet. Grundsätzlich warten wir schonmal sehr gespannt auf die Sicherheitsfeatures von Domino 11.

Habt ihr Fragen oder Anregungen? Ruft uns einfach an unter 05251-288160 oder schreibt uns eine Mail an info@itwu.de.

Mittlerweile bin ich ja schon etwas über 1,5 Jahre ein Teil der ITWU Mannschaft, aber kegeln waren wir bisher noch nicht. Ich war grundsätzlich noch nicht kegeln, jedenfalls soweit ich weiß, nur bowlen. Das hat sich dann vorletzte Woche Mittwoch geändert, als wir die Kegelbahn in der alten Residenz in Schloß Neuhaus besucht haben.

Gegen 20:00 sind alle nach und nach eingetrudelt und es wurden erstmal Getränke bestellt und Probe gekegelt. Ganz stolz war ich, dass ich den ersten Strike (wie auch immer man es beim Kegeln nennt) geworfen hab, bis der einleuchtende Kommentar kam „Jetzt hast du direkt schon all dein Glück beim Probekegeln verbraucht!“. Das hat sich dann auch bewahrheitet. Es blieb aber auch der einzige Strike des Abends – da hatte ich wohl unser aller Glück direkt verbraucht …

Zu vierzehnt waren wir vollzählig und es ist wirklich besonders, dass wir es tatsächlich geschafft hatten, alle an einem Abend zu versammeln. Besser beim Kegeln als beim Bowlen finde ich, dass wir uns nicht extra (wer weiß wie oft getragene) Schuhe ausleihen mussten. Auch dass es in der alten Residenz nur eine Bahn gibt und wir dort separat in kleiner Runde waren, hat mir gefallen. Jan hat eine tolle Oldies-Playlist über die dort vorhandenen Lautsprecher laufen lassen und es herrschte eine heitere Stimmung. Das Essen war auch sehr gut. Ich hatte einen großen Cheeseburger und Pommes dazu. Beliebt war auch das Rahmschnitzel.

An dem Abend wurde die Kugel zweimal so fest geworfen, dass sie gegen die Wand gerollt ist und die Außenverkleidung der Punktestandsanzeige aufgeklappt ist. Einer von uns musste dann gebückt in den Kegelschacht klettern um die Abdeckung wieder zu schließen. ^^ Ich glaube Milosh war hier der erste glückliche Werfer. Er war an dem Abend in mehreren Dingen unser Spitzenreiter: Neben dem ersten Wandtreffer, hat er es als Einziger geschafft eine 8 zu erkegeln, als wir alle versucht haben möglichst viele Kegel zu treffen, und eine 0, als es darum ging möglichst wenig Kegel zu treffen.

Kurzzeitig nahm das Gespräch am Tisch eine unerwartete Richtung, als der Song „Time of my life“ von Jennifer Warnes und Bill Medley lief. Da fing Carl dann an in Erinnerungen zu schwelgen und uns an seinem scheinbar unerschöpflichen Dirty-Dancing-Trivia-Wissen Teil haben zu lassen. Wer hätte es gedacht? Begeistert hat er uns vom Dirty-Dancing-Tanzkurs erzählt, den er als Jugendlicher besucht hatte (natürlich alles nur für die Damen *hust*). Selbst Stephan hatte an so einem Kurs teilgenommen. Aber interessant zu wissen, was früher die Herzen der beiden bewegt hat. ^^

Insgesamt würde ich sagen, waren wir alle keine preisverdächtigen Kegler (außer Milosh vielleicht), aber Spaß hatten wir dabei und das ist ja auch die Hauptsache :)

Habt ihr Fragen oder Anregungen? Ruft uns einfach an unter 05251-288160 oder schreibt uns eine Mail an info@itwu.de.

Nachdem ITWU bisher nur mit Phonegap bzw. Cordova mobile Apps für iOS entwickelt hat, war es dringend an der Zeit sich den aktuellen Stand der Hilfen zur mobilen cross-plattform App-Entwicklung anzuschauen –  Ob es nun ein Framework, ein Toolkit, ein Creator, ein Builder oder eine IDE ist.

 

Angeschaut wurden Ionic, Titanium, Xamarin, Sencha, AppGyver, AlphaAnywhere, Kony Vizualizer, Apperio, Quickbase, Eachscape und Google Flutter. Eins der wichtigsten Kriterien für uns ist, dass man nur einmal programmiert. Auf keinen Fall ist es gewünscht, dass man nach dem Entwickeln in der eignen IDE noch einmal viel Code im Android Studio oder in der Xcode IDE für iOS ein zweites Mal programmiert. Viele Tools konnten begeistern, sind aber nur für bestimmte Einsatzzwecke optimiert. Andere Werkzeuge konnten wir von vorneherein ausschließen, weil 20 – 50% des Codes tatsächlich ein zweites Mal programmiert werden muss. Mittlerweile muss man leider sagen, dass viele der Hilfen auf eine Online-Verbindung angewiesen sind, weil diverse Cloud-Dienste genutzt werden. Aus meiner Sicht ist das nicht immer praktisch.

 

Am Ende blieb in unserer Vergleichsmatrix der Hilfen ein Unentschieden zwischen Ionic und Googles Flutter stehen. Und das obwohl der Ionic Creator 3.2 gerade im Alpha Release und Google Flutter im Beta Release sind.

 

Ionic setzt auf bekannte Wege zur cross-plattform App-Entwicklung: Angular, JS, HTML, CSS, uvm. Man denke an Progressive Web Apps ;) Ionic bietet auch einen eigenen Creator aber keine eigene IDE. Für die meisten bekannten IDEs gibt es aber Plug-Ins und natürlich die berühmte Commandozeile. So kann man dann auch den Export für XCode und Android Studio erstellen.

 

Flutter ist absolut neu und programmiert wird in DART. Flutter ist eigentlich nur ein UI Framework bzw. SDK und kann direkt in Android Studio verwendet werden. Von dort kann man dann einen Export für Xcode erstellen. Wir sehen in Flutter im Moment ein großartiges Potential. Es wird nativer Code kompiliert, so dass man direkt den Performance-Vorteil gegenüber den hybriden Frameworks merkt. Die Entwicklung ist aber so nah an JavaScript, dass man nicht wirklich eine neue Programmiersprache lernt.

 

Wir sind gespannt, was auf der Google I/O 2018, auf der auch Flutter ein Thema war, herausgekommen ist. Wir halten euch hier auf dem Laufenden.

 

Dann programmieren wir mal weiter.

 

Habt ihr Fragen oder Anregungen? Ruft uns einfach an unter 05251 288160 oder schreibt uns eine E-Mail an info@itwu.de.

 

Kleiner Tipp am Rande:

IBM Lotus Notes bzw. der Domino Designer sind sehr großzügig beim Schreiben von Dump-Files ( *.dmp Dateien ) bzw. von Java Heapdumps ( *.phd Dateien). Diese Dateien werden in einigen Fällen vom IBM Support gebraucht und von Notes bzw. dem Designer bei Programm-Abstürzen geschrieben. Gespeichert werden sie meistens im Ordner notesdatapfad/workspace/logs. Gelegentlich findet man aber in einigen anderen Notes Ordnern auch Dumps, bspw. im notesdata Root, im notesdatapfad/workspace und im Notes\Data\IBM_TECHNICAL_SUPPORT. Grundsätzlich werden diese Dump Dateien nicht automatisch gelöscht. In meinem notesdatapfad/workspace/logs Ordner waren also gerade mehrere GB alleine an *.dmp und *.phd Dateien. Wenn man seine Festplatte bereinigt, sollte man auf jeden Fall auch diese Ordner bereinigen. Gerade ältere Dumps im data/workspace/logs Ordner können problemlos gelöscht werden. Und so manche SSD Festplatte freut sich über freien Speicherplatz Ja!