Glossare und Lexika mit WordPress erstellen

DigitalGlossar: Ein auf WordPress basierendes Online-Glossar

Um ein Glossar oder ein Lexikon online zu bringen gibt es verschiedene Wege. Wer dem Beispiel der Wikipedia folgend auf die aktive Mitarbeit seiner Benutzer setzt, wird typischerweise ein Wiki nutzen. Wer eher im klassischen Sinn publizieren möchte, kommt auch mit einem Content-Management-System zum Ziel. Dieser Artikel beschreibt einen dritten Weg, nämlich den Aufbau eines Glossars mit dem Blog-System WordPress – und zwar ohne Plugins wie Lexicographer, Glossary, WP-SNAP oder Explanatory Dictionary. Als Versuchsobjekt benutzte ich ein kleines Glossar mit Fachbegriffen aus Online-Kommunikation und -Marketing, das ich einmal für Studierende erstellt hatte: das DigitalGlossar.

Der Kerngedanke besteht darin, die Blog-Kategorien als alphabetischen Index zu nutzen. Zunächst legt man also je eine Kategorie für jeden Buchstaben des Alphabets an. Die Artikel werden dann als normale Blog Posts angelegt und derjenigen Kategorie zugeordnet, die dem Anfangsbuchstaben des zu erläuternden Begriffs entspricht. Sinnvollerweise wählt bzw. erstellt man ein WordPress-Theme, das die Liste mit den Kategorien prominent am oberen Seitenrand platziert.

Alphabetische Sortierung der Posts dank WP Post Sorting

Bis hierher ist die Lösung denkbar einfach, sie hat aber noch einen entscheidenden Schönheitsfehler: Die Artikel werden in der Reihenfolge ihrer Entstehung angezeigt statt alphabetisch. Man könnte dies wohl mit einer kleinen Code-Änderung im Template korrigieren, ich persönlich habe mich jedoch für die bequemere Lösung entschieden und das Plugin WP Post Sorting installiert, das diese Aufgabe klaglos meistert.

Lassen Sie mich zum Abschluss noch kurz erläutern, worin ich den Vorteil von WordPress für diesen Einsatzzweck sehe. Zunächst bietet WordPress im Vergleich zu einem Wiki (und auch im Vergleich zu vielen CMS) die komfortabelste und übersichtlichste Arbeitsumgebung für den Autor des Glossars. Zugleich ist es sehr einfach, ein ansprechend gestaltetes Design in Form eines Themes zu beschaffen. Und schliesslich schlägt WordPress elegant die Brücke zwischen der Mitmachkultur eines Wikis und dem geordneten Publikationsprozess eines CMS: Inhaltliche Ergänzungen und Korrekturen der Benutzer können leicht über die Kommentarfunktion entgegengenommen werden, ohne dass gleich jeder den Text verändern kann.

Wer übrigens die Geschichte noch etwas weiter treiben und Custom Fields nutzen möchte, dem sei der Artikel Setting up WordPress as a dictionary site von Anne Dorko empfohlen.

WordPress: Pharma Hack eliminieren – zweiter Versuch

Vor einigen Wochen habe ich an dieser Stelle beschrieben, wie dieses Blog Opfer des sogenannten Pharma Hacks wurde. Leider zeigte sich kurz danach, wie raffiniert dieser Hack funktioniert – offensichtlich hatte ich nicht den gesamten Schadcode eliminiert, und so präsentierte sich mein Blog schon nach wenigen Tagen wieder folgendermassen in der Trefferliste von Google:

Open Mind Blog mit Phrama Hack

Das ist mehr als ein Schönheitsfehler: Der Traffic auf meinem Blog brach aufgrund des Pharma Hacks auf etwa die Hälfte ein. Diese Situation zwang mich, mich nochmals eingehender mit diesem Angriff und dessen Bekämpfung auseinanderzusetzen – hier die dabei gewonnenen Erkenntnisse, die ich primär dem Artikel “How to Diagnose and Remove the WordPress Pharma Hack” verdanke.

Was bewirkt der Pharma Hack?

Wie man im obigen Screenshot erkennen kann, wird das TITLE-Tag von Blog-Artikeln durch Werbung für verschiedenste Pharmazeutika ersetzt, deren Namen Sie von Spam-Mails bestens kennen dürften. Allerdings wird diese Werbung nur dann eingeschleust, wenn der Google-Spider auf das Blog zugreift, so dass der Hack nicht auffällt, solange ein menschlicher Besucher das Blog liest – nur in den Trefferliste von Google fällt der Hack auf.

Zusätzlich werden offenbar Links auf einschlägige Websites in die Blog Posts eingebaut. Ich selbst konnte zwar keinen solchen Link entdecken, aber wenn es sie nicht gäbe, würde der Hack keinen Sinn machen, weil der Hacker vom verunstalteten TITLE-Tag allein noch keinen Vorteil hat. Denn letztlich ist der Pharma Hack ein Parasit: Sein Ziel ist es nicht, das gehackte Blog zu schädigen, sondern ihm Links unterzujubeln und so Suchmaschinenoptimierung der übleren Sorte zu betreiben.

Wo versteckt sich der Pharma Hack?

Dass der Pharma Hack nur schwer zu entfernen ist liegt daran, dass sich der Schadcode in verschiedensten Dateien des Plugin-Verzeichnisses sowie in der Datenbank verteilt und auch einiges unternimmt, um unentdeckt zu bleiben – eine blosse Suche nach Entschlüsselungsfunktionen wie eval() oder base64_decode(), wie sie für Hacks typisch sind, führt deshalb nicht zum Ziel.

Wie wird man den Pharma Hack wieder los?

  1. Komplett-Backup von Datenbank und Dateisystem durchführen.
  2. Aktuellste WordPress-Version installieren. Dies löst zwar nicht das konkrete Problem, ist aber eine generelle Sicherheitsmassnahme für jede Web-Applikation, um zukünftigen Hacks vorzubeugen.
  3. Plugin-Verzeichnis von infizierten Dateien befreien. Dies ist leichter gesagt als getan, denn der Hack versteckt sich einigermassen zufällig in den verschiedensten Plugins in den verschiedensten (gelegentlich auch unsichtbaren) Dateien. Statt alle Plugin-Verzeichnisse nach verdächtigen Dateien durchzusehen (was sowohl zeitaufwändig als auch technisch anspruchsvoll ist) habe ich mich diesmal zu einer Radikalkur entschlossen: Ich habe den gesamten Plugin-Ordner per FTP gelöscht und anschliessend alle Plugins neu installiert. Am besten macht man vorher einen Screenshot des Plugin-Managers im WordPress-Backend, um den später zu wissen, welche Plugins installiert werden müssen.
    Das ist natürlich eine brachiale Methode und entsprechend nicht ganz unproblematisch. Je nach dem, welche Plugins man im Einsatz hat, ist das Blog nach diesem Eingriff mehr oder weniger verunstaltet oder gar gänzlich offline. Und unter Umständen ist es auch mit der blossen Neuinstallation eines Plugins nicht getan, weil Modifikationen und Konfigurationsdateien gelöscht wurden. Im Notfall kann man aber immer noch einzelne Plugins aus dem Komplett-Backup wiederherstellen, und letztlich geht es um eine Güterabwägung: Ich persönlich habe lieber ein temporär verunstaltetes Blog in Kauf genommen, um den Hack endlich loszuwerden.
  4. Schadcode aus WordPress-Datenbank eliminieren. Hier geht es darum, mit phpMyAdmin (oder einem anderen Datenbank-Frontend) einzelne Datensätze aus der Tabelle wp_options zu löschen. Die exakte Anleitung hierzu finden Sie im bereits erwähnten Artikel von Chris Pearson.

Ob diese Methode wirklich funktioniert? Nun, wir werden sehen. Im Moment jedenfalls sieht es gut aus:

Open Mind Blog ohne Pharma Hack

1. Contao-Konferenz, Bad Soden

Contao-Konferenz 2011

Als Contao noch TYPOlight hiess, versammelten sich seine Anwender jährlich zum TYPOlight-Usertreffen. Mit dem Namenswechsel wurde auch der Anlass umbenannt, und so findet dieses Jahr erstmals die Contao-Konferenz statt. Neu werden parallel zu den Vorträgen (Session Track) auch Workshops angeboten, um im kleineren Kreis (max. 40 Teilnehmer) bestimmte Themen intensiver zu diskutieren. Die Contao-Konferenz 2011 findet am 2. und 3. Juni 2011 im deutschen Bad Soden statt.

WordCamp Switzerland, Brugg

WordCamp Switzerland 2011

WordPress hat sich zu einem der populärsten und vielseitigsten Systeme für Websites aller Art entwickelt: Nebst zahllosen Blogs basieren auch immer mehr Unternehmens-Websites, Social-Network-Plattformen (Stichwort: BuddyPress) und sogar Shops auf WordPress.

Das WordCamp Switzerland trägt diesem Trend Rechnung: Am 7. Mai 2011 treffen sich WordPress-Benutzer an der Fachhochschule Nordwestschweiz in Brugg zu einem Barcamp rund um WordPress. 18 Sessions in 3 Tracks sind vorgesehen, wobei derzeit noch für etwa die Hälfte der Sessions Präsentation gesucht werden.

TYPOlight auf Contao upgraden

Contao Backend Login

Dinge, die kompliziert erscheinen, schiebt man gerne vor sich her. So habe ich lange damit zugewartet, meine diversen TYPOlight-Installationen der Version 2.8 auf Contao 2.9 zu aktualisieren, denn ein Namenswechsel einer Software ist meist mit wechselnden Pfaden verbunden, und das kann ein Update tricky machen.

TYPOlight – Verzeihung: Contao – ist aber auch in dieser Situation eine positive Ausnahme. Das Update verläuft trotz des neuen Namens exakt wie bisher, und das obwohl das Backend nun statt unter www.beispiel.com/typlight/ neu unter www.beispiel.com/contao/ liegt. Also:

  1. Komplett-Backup von Dateien und Datenbank erstellen
  2. Dateien der aktuellen Contao-Version per FTP auf den Server laden
  3. Konfigurationsdateien aus dem Backup nach /system/config/ zurückspielen
  4. Installer ausführen

Detailliertere Informationen zum manuellen Update findet man im Contao-Benutzerhandbuch.

ImageOptim: Bildgrössen optimieren per Drag & Drop

ImageOptim für Mac OS

Auch wenn hierzulande die Mehrzahl der Haushalte per Breitbandverbindung ins Internet geht: Es ist nach wie vor sinnvoll, Bilder für Websites so leicht wie möglich zu produzieren. Leichtere Bilder beanspruchen weniger Server-Leistung und Bandbreite, und eine performantere Website freut nicht nur den Benutzer, sondern wird sogar von Google mit einem besseren Ranking belohnt. Ausserdem sollte man nicht vergessen, dass in vielen Ländern Breitbandverbindungen noch viel weniger alltäglich sind und dass immer mehr Menschen per Smartphone auf Websites zugreifen – und hier spielen ein paar Dutzend KByte mehr oder weniger durchaus eine Rolle.

Nun ist aber die Optimierung von Dateigrössen bei PNGs, JPEGs und GIFs eine Wissenschaft für sich, und nicht jeder hat dieses Wissen. Hier bietet sich ImageOptim an: Diese kleine Applikation für Mac OS optimiert Bilder, die man per Drag & Drop auf das Programmfenster zieht, vollautomatisch und zeigt am Schluss die erzielte Komprimierung in Prozent an. Die wenigen Optionen, welche das Programm besitzt, sind im Einstellungen-Dialog untergebracht und werden dort in der Regel einmalig festgelegt; danach nutzt man ImageOptim, ohne sich den Kopf zerbrechen zu müssen.

Streng genommen ist ImageOptim kein einzelnes Programm, sondern nur eine grafische Benutzeroberfläche für sieben verschiedene Kommandozeilen-Tools mit den kryptischen Namen OptiPNG, PNGcrush, AdvPNG, PNGout, JPEGtran, JPEGopt und GIFsicle. Davon merkt man allerdings wenig, einzig PNGout muss aus lizenzrechtlichen Gründen manuell installiert werden. Ansonsten fühlt sich ImageOptim wie eine normale Mac-Applikation an und leistet im Alltag gute Dienste.

subwayMap: U-Bahn-Pläne per JavaScript

Information Architects: Web Trend Map 2007

Spätestens seit der Web Trend Map von Information Architects ist uns allen klar geworden, dass sich mit Liniennetzplänen nicht nur der Öffentliche Verkehr, sondern auch logische Zusammenhänge visualisieren lassen (vgl. Ten Examples of the Subway Map Metaphor). Wer den Aufwand nicht scheut, kann dank dem Subway Map Visualization jQuery Plugin selbst solche Pläne erstellen. Wie das ausführliche Tutorial zeigt, muss man dazu kein Computer-Grafik-Spezialist, sondern nur ein leidlich begabter HTML-Programmierer sein. Nebst etwas Fleiss braucht es allerdings auch einen HTML5-fähigen Browser – dafür ist das Resultat auch für Suchmaschinen indexierbar. Ein spannendes Experiment für ein verregnetes Wochenende!

(via WebAppers)

BuddyPress vor fremden Blicken schützen

WordPress Backend Login

Wer mit WordPress und BuddyPress seine eigene Social-Network-Plattform aufbaut, möchte möglicherweise nicht jedem beliebigen Besucher Zugang gewähren. Dabei geht es um zwei verschiedene Aspekte: Einerseits sollen nicht eingeloggte Besucher die Plattform nicht einsehen können (oder höchstens einige ausgewählte Seiten wie z.B. das Registrierungsformular), andererseits sollen neu registrierte Benutzer ihr Login erst nach der Freischaltung durch einen Administrator nutzen können.

Klingt einfach? Ist es aber nicht! Das Problem liegt zunächst darin, dass WordPress von Haus aus wohl das Backend, nicht aber das Frontend durchgängig mit einem Login schützt. Erschwerend kommt in unserem Fall dazu, dass das BuddyPress-Plugin einige spezielle Seiten anlegt (Activitiy Stream, Members, Groups), welche WordPress nicht wie normale Seiten behandelt; nicht alle Plugins, welche das Frontend mit einem Passwortschutz versehen, schützen deshalb auch die BuddyPress-Seiten. Und last but not least kennt WordPress keine Freischaltung von neu registrierten Benutzern durch einen Administrator, sondern erlaubt es den Benutzern, sich über einen per E-Mail zugestellten Aktivierungs-Link selbst freizuschalten.

Um also eine BuddyPress-Installation komplett vor fremden Blicken zu schützen benötigt man Plugins, und zwar gleich mehrere. Verschiedene meiner Testkandidaten haben zudem mit WordPress 3.1 und BuddyPress 1.2.8 – also den allerneusten Versionen – nicht korrekt funktioniert.

Plugin Schutz des Frontends Freischaltung von neuen Usern
BP Registration Options schützt nur BuddyPress-Seiten, aber keine Standard-WordPress-Seiten OK
Private BuddyPress OK
New User Approve wirkungslos
Absolute Privacy schützt nur Standard-WordPress-Seiten, aber keine BuddyPress-Seiten OK
WP Members wirkungslos
More Privacy Options wirkungslos
BuddyPress Privacy Component fehlerhaft (Website nicht mehr erreichbar)
Force User Login schützt nur Standard-WordPress-Seiten, aber keine BuddyPress-Seiten

 

Was in meinem Fall schliesslich funktionierte, war die Kombination aus Private BuddyPress als umfassender Schutz des Frontends und Absolute Privacy als zuverlässiger Freischaltprozess für neu registrierte Benutzer. Dass es allerdings dermassen umständlich ist, eine BuddyPress-Installation sauber gegen aussen abzuschotten, scheint mir schon ziemlich bedenklich – eine solche Funktionalität gehört meiner Meinung nach ins Basissystem und sollte nicht mit Plugins nachgerüstet werden müssen.

Der Pharma-Hack und einige Hinweise zur WordPress-Sicherheit

Open Mind Blog mit Pharma-Hack

Falls Sie mein Blog über einen RSS-Reader verfolgen oder in der Google-Trefferliste gefunden haben, dann haben Sie sich vielleicht über die penetrante Pharmazeutika-Werbung gewundert. Seien Sie versichert: Ich habe keinen Rappen damit verdient und sie auch nicht selbst aufgeschaltet; vielmehr ist das Open Mind Blog Opfer des sogenannten Pharma-Hacks geworden.

Das Perfide daran: Die Verunstaltungen des Blogs waren für den normalen Besucher (und damit auch für mich selbst) nicht sichtbar. Wurde die Seite von einem normalen Browser angefordert, dann lieferte WordPress die unversehrte Seite aus; nur dem Googlebot wurde die infizierte Version angezeigt. Leider erreichten mich auch die Warnungen meiner Leser nicht, die mich per Kommentarformular darauf hinwiesen, dass in meinen Artikeln Wörter wie “Prozac”, “Ventolin”, “Lithium” und “Viagra” vorkommen – denn hier schlug natürlich Akismet (der Kommentar-Spam-Filter von WordPress) zu. Erst durch Beschwerden per E-Mail wurde ich auf das Problem aufmerksam – und selbst dann dauerte es noch einige Zeit, bis ich es beheben konnte. Was ich bei dieser Gelegenheit gelernt habe, möchte ich Ihnen nicht vorenthalten.

Exploit Scanner

Wie ich den Pharma-Hack eingefangen habe, kann ich nicht nachvollziehen. Da ich den WordPress-Core laufend auf den neusten Stand bringe (Sicherheitsregel Nummer 1), war wahrscheinlich ein Plug-in oder ein Theme die Schwachstelle, wo der Hacker angreifen konnte. In diesem Zusammenhang habe ich einen ausführlichen Artikel gefunden, der eindrücklich die Gefahr von versuchten Gratis-Themes aufzeigt: Why You Should Never Search For Free WordPress Themes in Google or Anywhere Else. Über diesen Artikel bin ich auch auf zwei WordPress-Plugins gestossen, welche mir letztlich den entscheidenden Hinweis auf den Pharma-Hack gaben: Theme Authentity Checker (TAC) und Exploit Scanner.

Die notwendigen Informationen zur Entfernung des Schadcodes verdanke ich schliesslich diesem Artikel: Understanding and cleaning the Pharma hack on WordPress. Ich hoffe, es hat gewirkt! Falls nicht, dann beschweren Sie sich mit Vorteil nicht über das Kommentarformular, sondern per E-Mail

OpenPublish und andere Drupal-Distributionen

OpenPublish

OpenPublish ist eine auf Drupal basierende Lösung, die sich insbesondere für News-Plattformen eignet. Einfache Publikationsprozesse, Unterstützung für Monetarisierung und Content Syndication sowie verschiedene Mechanismen für die Suchmaschinen-Optimierung stehen bei solchen Anwendungen im Zentrum. OpenPublish präsentiert sich als durchdachte, leistungsfähige und flexible Lösung, die sich als Basis für die Online-Präsenz von mittelgrossen Publikationen anbietet.

OpenPublish Backend

Mindestens so interessant wie OpenPublish selbst empfinde ich das Konzept bei Drupal, dass immer mehr anwendungsspezifische Distributionen auftauchen, also Software-Pakete, welche die Drupal-Basisversion mit diversen Modulen bündeln. Die Installation dieser Distributionen ist genau so einfach wie bei Drupal selbst, und so hat man im Handumdrehen eine funktionierende Plattform. Mit diesem Distributionenkonzept präsentiert sich Drupal ausgesprochen vielseitig und kann sich für verschiedenste Anwendungen empfehlen, bei denen man sonst nie an Drupal gedacht hätte, weil die manuelle Installation und Konfiguration der vielen Module ziemlich aufwändig sein kann.

OpenPublish ist übrigens nicht die einzige Drupal-Distribution von Phase2 Technology: Die Drupal-Spezialisten aus Virginia haben auch noch OpenPublic (eine Lösung für Websites von Regierungen und Behörden) sowie OpenAtrium (eine Projektmanagement-Plattform, die ursprünglich von Development Seed entwickelt wurde) im Angebot.