Kleines Fehlerbehebungsupdate: ePartool 4.5.1

Heute veröffentlichen wir ein kleines Fehlerbehebungsupdate für das ePartool: Mit der Version 4.5.1 wurden mehrere kleine Korrekturen im Bereich „Reaktionen & Wirkungen“ vorgenommen. Das betrifft insbesondere die Textboxen in der Zeitleiste, bei denen die Anzeige des Abstimmungsrang und der Dokumentvorschau korrigiert wurde.

Weiterhin erschienen Systemmeldungen im Backend in der letzten Version nicht immer in der eingestellten Sprache. Ebenso wurde noch ein Abbruchfehler beim Installer behoben.

An der Verbesserung des Follow-up-Bereichs arbeiten wir derzeit auch weiterhin: Nach ersten Nutzerrückmeldungen bei Tests soll die Verfolgung von Originalbeitrag bis hin zu Rückmeldungen aus der Entscheider_innen noch etwas intuitiver werden. Hier gibt es bald weitere Neuigkeiten.

Derzeit bekanntes Problem ist, dass der Button »Herunterladen« eines Reaktionsdokuments von der Zeitleiste aus unter dem Firefox-Browser nicht funktioniert. [Update 1. August: Mit der ePartool-Version 4.5.2 ist dieses Problem behoben.] Umschiffen kann man das Problem durch Aufrufen der Reaktionsdokumente direkt von der Startseite des Bereichs »Reaktionen & Wirkung«.

Wie immer findet sich der aktuelle Installer auf unserer Downloadseite zum ePartool.

Fremde Inhalte einbinden und trotzdem „sicher“ bleiben?

Das Besondere am World Wide Web ist, dass alle Inhalte miteinander vernetzt sein können. Mit nur einem Klick gelangt man zu weiterführenden Informationen oder neuen Inhalten. Zugleich wurde auch das traditionelle Konzept von „Seiten“ durch das WWW dank seiner Vernetzungs- und Interaktionsmöglichkeiten deutlich erweitert. Neben Fließtext und Bildern kann eine Seite aus weiteren Elementen bestehen, die aus ganz unterschiedlichen Quellen interaktiv eingebunden sind: Youtube-Videos, aktuelle Podcasts, Instagram-Fotos, Tweets (Twitter) oder Präsentationen mit Prezi sind nur ein paar der bekannteren Beispiele.

Diese Einbinde-Möglichkeit hat aber auch ihre Kehrseite, da man selbst als Seitenbetreiber_in kaum mehr überblicken kann, was am Ende auf einer Seite zu sehen sein wird. Thematisch unpassende, aufdringliche Werbeanzeigen nerven; Tracking-Cookies von Werbetreibenden oder von Social Media Funktionen durchleuchten die Besucher_innen meist ohne Vorwarnung und ohne Opt-out-Möglichkeit.

Über solche unerwünschte Aspekte hinaus bedeutet die vernetzte Herangehensweise des World Wide Web auch, dass sogar gefährliche Inhalte in eigentlich harmlose Seiten hineingeraten können.

Typische Einfallstore

Die Einfallstore sind zum Einen die eigentlich willentlich eingebundenen externen Quellen und zum Anderen (unbewusst) bestehende Sicherheitslücken: Wenn die eigene Website durch ein Content Management System befüllt wird, finden sich trotz aller Sorgfalt immer wieder Schwachstellen in der Programmierung dieses Redaktionssystems. Gerade interaktive Funktionalitäten sind besonders gefährdet. Typische Beispiele sind hierfür

  • Formulare (Anmeldemasken, Registrierungsformulare, Fragebögen, Suchfelder), die die eingegebenen Daten nicht auf den eigentlich beabsichtigten Inhalt prüfen oder beschränken, sondern z.B. statt der Eingabe einer eMail-Adresse dann möglicherweise die Übertragung von Programmiercode erlauben;
  • Funktionen zum Hochladen von Dateien (im Kern ebenfalls Formulare), die es versäumen zu überprüfen, ob z.B. wirklich nur eine Grafik oder doch stattdessen Programmcode übertragen wurde;
  • Suchfilter oder andere Parameter, die von einer Seite an die nächste übergeben wurden und bei denen aufgrund mangelnder Überprüfung Code-Einschleusung nicht verhindert wurde.

Eine so präparierte Website kann dadurch ganz andere Inhalte anzeigen als ursprünglich beabsichtigt. Wenn Nutzer_innen dann per eMail oder über Social-Media eine Einladung erhalten die Seiten zu besuchen, können sie nur sehr schwer erkennen, dass die Inhalte manipuliert wurden. Die Web-Adresse sieht ja weiterhin vertrauenswürdig aus und selbst die möglicherweise vorhandene https-Verschlüsselung funktioniert wie eh und je.

Die Lösung naht: Fremde Quellen explizit durch CSP freigeben

Um diesem Dilemma etwas entgegenzusetzen, wurde das Konzept der »Content Security Policy« (CSP) ersonnen. Im Kern funktioniert es so, dass die Betreiber einer Website im Rahmen einer Liste (Whitelist) einzeln aufführt, von welchen fremden Quellen Inhalte überhaupt auf der Website erscheinen dürfen. Die Liste ist dabei in einzelne Sektionen unterteilt. So kann beispielsweise festgelegt werden, dass für Audio und Video bestimmte Quellen zugelassen sind, Schriftarten oder eingebundene Fragebogen aber wiederum nur von anderen Quellen. Dadurch soll verhindert werden, dass eingebunde Quellen Inhalte mit ausliefern, die man als Betreiber_in einer Website nicht vorher eingeplant hat.
Dieses „Whitelisting“ hat allerdings eine Kehrseite: Nicht explizit freigegebene Quellen werden auch ohne weitere Erklärung unterdrückt. Wenn man beim Befüllen der Inhalte die Liste der Freigaben nicht im Kopf hat, wird man bei nicht-angezeigten Inhalten kaum die Ursache des Problems erkennen. Eine Einführung von CSP-Mechanismen sollte daher immer in enger Abstimmung zwischen den technisch und den redaktionell verantwortlichen Teams erfolgen.

Umsetzung von Content Security Policy im ePartool

Das ePartool unterstützt seit dem Frühjahr 2017, ab den Versionen 4.3.x, das Konzept der Content-Security-Policy.

Seither haben wir die Konfiguration noch etwas vereinheitlicht und verbessert. Die Quellen können in der Datei config.ini des ePartool eingetragen werden. Aus Sicherheitserwägungen heraus kann die Liste leider nicht bequem über die Redaktionsoberfläche verändert werden (da sie sonst angreifbar wäre und der Sicherheitsaspekt konterkariert würde). Wir liefern das ePartool bereits mit häufig benutzen Quellen aus, allerdings lohnt es sich auf jeden Fall, die Liste selbst noch zu überprüfen.

Der Aufbau und eine Übersicht der vorhandenen Einstellungsmöglichkeiten finden sich in der config.ini-Beispieldatei, die im selben Ordner zu finden ist wie die config.ini selbst: tool/application/configs/config.local-example.ini

; CORS settings - contains list of allowed addresses from where can be loaded external resources
; allow address for specific type of resource
; for details see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy

; Serves as a fallback for the other fetch directives
; cors.default-src[] = "*.example.com"

; Specifies valid sources of application manifest files - <link rel=manifest>
; cors.manifest-src[] = "*.example.com"

; Specifies valid sources for loading media using the <audio> and <video> elements - <video> <audio> <source> <track>
; cors.media-src[] = "*.example.com"

; Specifies valid sources for the <object>, <embed>, and <applet> elements
; cors.object-src[] = "*.example.com"

; Restricts the URLs which can be used as the target of a form submissions from a given context
; cors.form-action[] = "*.example.com"

; Specifies valid sources of images and favicons
; cors.img-src[] = "data: *.example.com"

; Specifies valid sources for fonts loaded using @font-face
; cors.font-src[] = "*.example.com"

; Specifies valid sources for JavaScript
; cors.script-src[] = "*.example.com"

; Specifies valid sources for stylesheets - <link rel=stylesheet>
; cors.style-src[] = "*.example.com"

; Restricts the URLs which can be loaded using script interfaces - XmlHttpRequest() WebSocket() EventSource() sendBeacon() fetch()
; cors.connect-src[] = "example.com"

; Defines the valid sources for web workers and nested browsing contexts loaded using elements such as <frame> and <iframe>
; cors.child-src[] = "*.example.com"

 

Browserunterstützung: Fast alle sind dabei

CSP wurde bereits weiter entwickelt und ist derzeit in der zweiten Ausbaustufe technisch definiert. Während die Grundfunktionen mittlerweile in den meisten Browsern Einzug gefunden haben, wird der aktuelle Level 2 des Content Security Policy Konzepts vom Opera Mini und dem Internet Explorer 11 nicht unterstützt (aber vom Microsoft-Edge-Browser). Detaillierte Informationen hierzu finden sich bei »Can I Use …« unter https://caniuse.com/#search=csp

Tipp: Antragsgrün-Installation aktualisieren

Antragsgrün wird laufend weiterentwickelt. Fehlerbehebungen und neue Versionen erscheinen manchmal im Abstand von wenigen Tagen. Damit Installationen mit nicht allzu großem Aufwand auf dem aktuellen Stand gehalten werden können, gibt es einen Assistenten für das Installationspaket von Antragsgrün. Er kümmert sich um eventuell notwendige Datenbankanpassungen selbst:

  1. Die neueste Version von Antragsgrün herunterladen.
  2. Alle Dateien extrahieren und damit die bestehende Installation überschreiben. Die bisherige Konfiguration bleibt dabei unangetastet (zu finden in /config/config.json).
  3. Die Datei /config/INSTALLING entfernen
  4. Auf der Kommandozeile ./yii migrate ausführen, um die ggf. notwendigen Datenbankänderungen der neuen Version automatisch zu erledigen. Falls man lediglich ein Webhostingpaket benutzt, gibt es den Ausweg eine exakte Kopie auf dem lokalen Rechner zu aktualisieren und dann erst auf den Server hochzuladen.

Trotz dieses Assistenten sollte man nie vergessen, vorher ein Backup der Installation sicherzustellen: Nur dann kann man ohne Weiteres auf die alte Version zurückkehren, falls die Aktualisierung schiefgelaufen ist.

 

Was ist eigentlich… ein »Staatstrojaner«?

Frage: In den Medien wird immer wieder von „Staatstrojanern“ und „Quellen-TKÜ“ berichtet. Worum geht’s da?

Antwort: Vom trojanischen Pferd, das einen Angriff auf die Stadt Troja von innen heraus ermöglichte, hat die Software-Gattung der »Trojaner« ihren Namen. Es handelt sich um vom Nutzer unerwünschte Anwendungen, die ihn ausspionieren, Daten manipulieren oder Geräte fernsteuern. Diese Trojaner existieren für Computer und Smartphones/Tablets gleichermaßen.
»Quellen-TKÜ« steht für Telekommunikationsüberwachung (TKÜ) an der „Quelle“, also dort wo die konkreten Vorgänge passieren. Es geht also darum die Trojaner direkt auf die Geräte der zu überwachenden Personen zu bekommen und dort die Daten live zu durchsuchen oder Eingaben oder Kommunikation mitzuprotokollieren. »Quellen-TKÜ« und »Online-Durchsuchung« sind daher auch die offiziellen Bezeichnungen für den Staatstrojaner. Unbemerkt vom Nutzer/von der Nutzerin soll das Mikrofon eingeschaltet werden, Bildschirmfotos gemacht und von der Ferne auf das Gerät zugegriffen werden.

Das Bundesverfassungsgericht beschloss 2008, den Einsatz von Staatstrojanern nur unter großen Auflagen für die Bekämpfung von Terrorismus zuzulassen. Der Bundestag möchte die Rahmenbedingungen und Einsatzmöglichkeiten allerdings derzeit deutlich erweitern.

Neben rechtsstaatlichen Fragen zieht Trojaner-Software aber auch konkrete Sicherheitsprobleme nach sich: Durch das Ausnutzen vorhandener oder neu geschaffener Einfallstore sind die Geräte auch noch anfälliger für Kriminelle. Man darf nicht vergessen: Die Überwachung soll der Aufklärung von Straftaten dienen und sollte daher nicht noch weitere Straftaten befördern.

Von glücklichen Pandabären: ePartool 4.3.2

Panda (Unicode-Symbol U+1F43C)Mit dem internen Codenamen »Happy Panda« veröffentlichen wir heute die Version 4.3.2 des ePartool. Der ungewöhnliche Beiname rührt daher, dass das ePartool nun den erweiterten Unicode-Standard in allen Modulen unterstützt. Konkret bedeutet das, dass wir neben allen Schriftzeichen der Erde nun auch alle Emojis unterstützen, theoretischerweise auch alle zukünftigen. Das Panda-Symbol ? war unser Testbeispiel.

Als neues Sicherheitsfeature unterstützt das ePartool nun auch »Content Security Policy (CSP)«. Das bedeutet, dass man als Seitenbetreiber_in künftig festlegen kann, von welchen externen Quellen Inhalte nachgeladen und angezeigt werden dürfen. Wir testen derzeit noch verschiedene Möglichkeiten zur (möglichst übersichtlichen) Konfiguration und werden das Feature demnächst in einem eigenen Blogbeitrag vorstellen. [Update 30. Juni 2017: Beitrag ist hier zu finden]

Das ePartool wird künftig zur Kompatibilität mit PHP 7.x und MySQL 5.6 getestet. Derzeit wird zwar PHP in der Version 5.6 noch weiter unterstützt, jedoch testen wir die Kompatibilität ab Juni 2017 nicht mehr.

Das ePartool kann wie immer über die Installationsseite heruntergeladen werden.

ePartool: Mindestvoraussetzungen aktualisiert (PHP 7, MySQL 5.6)

Im August 2015 haben wir zum letzten Mal die Mindestanforderungen für den Betrieb des ePartool aktualisiert. Seitdem hat sich das Internet und seine Technologien bedeutend weiter entwickelt. Auch wollen wir Sicherheitsaspekte für Nutzende und Betreiber_innen im Auge behalten.

Aus diesem Grund haben wir uns entschieden, die Unterstützung für (sehr) veraltete Server einzustellen. Konkret bedeutet das, dass wir künftig als Datenbank-Server MySQL 5.6 oder neuer voraussetzen. Diese Version steht seit Februar 2013 zur Verfügung. Außerdem wird unsere Entwicklung nur noch mit PHP ab Version 7.0 getestet, das im Dezember 2015 erschienen ist. Derzeit wird das ePartool voraussichtlich noch auf Webhostings mit PHP 5.6 laufen; das werden wir jedoch nicht mehr garantieren.

Bei Problemen mit der Umstellung sind wir gerne behilflich.

Probleme beim Aufrufen von Yourpart.eu?

Probleme beim Ansteuern von Etherpads auf yourpart.eu? Kein Problem: Lasst das „www.“ in der Adresse weg.
Was passiert ist: Beim Übergang zur verschlüsselten https-Verbindung ist uns das www. wohl in der Konfiguration durchgerutscht. In den kommenden Tagen wird das Problem behoben sein und ihr könnt mit und ohne www. – und stets automatisch verschlüsselt – wieder darauf zugreifen.
[Update 31.01.2017] Mittlerweile ist der Server auch mit „www.“ wieder erreichbar.

Spin-Offs: Synergien durch Ausgliedern einzelner Tool-Funktionen

OpenSource-Software mit einer entsprechend freien Lizenz bietet die Möglichkeit, auf bestehenden Entwicklungen aufzubauen und diese auch in anderen Projekten weiterzuverwenden. Im ePartool verwenden wir zahlreiche OpenSource-Entwicklungen aus der Community.

Im Rahmen unserer Tool-Entwicklung versuchen wir Möglichkeiten zu finden, dass auch bestimmte Module oder Einzelfunktionen unserer Tools in anderen Projekten verwendet werden können. Dazu müssen zwar Bestandteile möglicherweise extra ausgegliedert werden, aber der im Vergleich zur (Neu-)Entwicklung eher geringe Zusatzaufwand kann sich lohnen: Der Gedanke dahinter ist, dass die Ressourcen, die wir in die Entwicklung von Werkzeugen stecken, nicht ausschließlich in eigenen Tools „vergraben“ werden sollten. Einige der Funktionen können auch in anderen Projekten nützlich sein.

Unser Ziel ist dabei, dass das Zurverfügungstellen einzelner Bausteine für Andere dabei stets unter einer möglichst wenig beschränkenden OpenSource-Lizenz erfolgen und auf einer öffentlichen Plattform wie Github zu beziehen sein soll. Dieses Ausgliedern von Modulen führt im Idealfall dazu, dass diese von anderen Entwickler*innen aufgegriffen und für weitere Einsatzzwecke angepasst werden. Diese Veränderungen können wiederum auch in unsere Projekte zurückfließen.

Das größte daraus bisher entstandende Projekt ist „Bootstrap UI“: „a Bootstrap extension for building beautiful web app user interfaces.“. Dank dieses Projekts können komfortable Benutzeroberflächen schneller und schöner gestaltet werden. Das Projekt entstand in mehreren Jahren der ePartool-Entwicklung und wird mittlerweile von der Prager Agentur VisionApps ohne unser Zutun weiterentwickelt. Auf der dafür eingerichteten eigenen Website steht eine Demoversion zum Testen zur Verfügung (auf „Demo“ klicken, die E-Mail-/Passwortfelder ignorieren und einfach auf „Sign In“ gehen).

Screenshot der Bootstrap UI Demoversion

Screenshot: demo.bootstrap-ui.com (© VisionApps | MIT-Lizenz)

Ein kleineres Helferlein, das erst dieses Jahr entstand ist ein Video-ID-Extraktor, damit Websites ohne eigene Streaming-Infrastruktur komfortabel und einheitlich Videos aus anderen Quellen einbinden können: Nutzer*innen müssen nicht mehr darauf achten, wie das Video jeweils genau anzusteuern ist und kann im weiteren Verlauf daher das Umschalten zwischen Desktop- und Mobilversionen hilfreich sein.

Falls ihr in unseren Projekten weitere interessante Teil-Module entdeckt, die ihr gerne woanders nutzen wollt, wendet euch gerne an uns!

Serverumzug Barcamptools & Yourpart-Etherpad

Die beiden Internetangebote barcamptools.eu und yourpart.eu sollen in Zukunft wieder zuverlässiger zur Verfügung stehen. Daher findet in der Nacht vom 5. auf den 6. Dezember ein Serverumzug statt. In dieser Zeit sind die Angebote nicht erreichbar.

Die Nutzerinhalte werden auf die neuen Server mit übertragen und stehen voraussichtlich ab dem 6. Dezember nachmittags wieder zur Verfügung.

[Update 7. Dezember] Leider hakte der Serverumzug an einigen Stellen. Mittlerweile läuft aber wieder alles.

In eigener Sache: tooldoku.dbjr.de ab sofort automatisch verschlüsselt

Seit heute ist für den Tooldoku-Blog ein Verschlüsselungszertifikat installiert. Bei Aufruf von tooldoku.dbjr.de werdet ihr automatisch auf die verschlüsselte Site https://tooldoku.dbjr.de weitergeleitet. Damit sind das Surfen auf unserer Dokumentations-Website sowie vor allem der Download des ePartool-Installers besser vor Eingriffen geschützt.