Wordpress Archive

Eigene Fehlerseite bei Datenbank-Problemen

Mit dem WordPress-Update auf die Version 2.3.2 gibt es nun (endlich) auch die Möglichkeit, bei Datenbank-Problemen eine individuell gestaltete Fehlerseite anzuzeigen. Bisher war das nur mit einem Hack möglich, den ich im Mai letzten Jahres vorgestellt hatte.

Die individuell Fehlerseite (hier meine Seite) wird in der Datei db-error.php abgelegt und wird im Ordner ‚wp-content‚ gespeichert. Ist die Datei vorhanden, zeigt WordPress bei Verbindungsproblemen zur Datenbank nun diese neue, individuell stylebare Datei an. Diese „offizielle“ Möglichkeit einer eigenen Errorseite hat den Vorteil, dass erneute Änderungen am Code bei einem Upgrade bzw. Update entfallen. Der Hack aus dem letzten Jahr musste hingegen bei jedem Update neu eingefügt werden.

Welche Änderungen und Fixes das Update, das übrigens als sicherheitsrelevant eingestuft wird, sonst noch mit sich bringt, lässt sich zum Beispiel bei Westi oder direkt bei WordPress nachlesen.

Wurm fixt aktuelle WordPress-Lücken

Sieben neue Sicherheitslücken hat beNi in den letzten Tagen in der aktuellen WordPress-Version 2.2.1 entdeckt und publik gemacht. Doch nicht nur das: Er hat auch gleich einen „gutmütigen“ Wurm geschrieben, der die Lücken patchen soll:

Er meldet sich dann mit einem div-layer in dem alles noch einmal beschrieben wird, daraufhin musst du bestätigen und der Wurm begleitet dich zu deinem Blog und führt dich in einer Art Setup durch das Patchen der unsicheren scripte upload.php, options.php und link-import.php, und am ende Frägt er ob du noch einen Blogroll-Link zu mir hinzufügen willst oder Feedback in irgendeiner Form hast

Gabs nicht mal einen Virenschreiber, der mit einem „gutmütigen“ Virus irgendeine Windows-Lücke patchen wollte? Klar, dieser „nette“ Wurm hilft tatkräftig dabei, die Dateien entsprechend zu patchen, doch ich sehe das grundsätzlich als gefährlich an. Wer weiss denn schon, ob der nächste als „nette“ bezeichnete Wurm ebenfalls nur Gutes im Sinne hat? Ich will beNi hier nichts unterstellen, aber zumindest theoretisch könnten auf diese Art auch ganz gewollt Hintertürchen eingebaut werden. Kommt dazu, dass wohl ein grosser Teil der Nutzer so einen „Patch-Wurm“ einfach ausführt, ohne sich gross Gedanken darüber zu machen, was dieser eigentlich genau an den Dateien verändert..

Ob es der richtige Weg ist, dass Entdecker von Sicherheitslücken diese gleich selbst patchen, scheint mir deshalb eher zweifelhaft. Andererseits kann es auch mal ein Weilchen dauern bis die WordPress-Entwickler die Lücken mit einem Update offiziell beseitigen, was ungepatchte Blogs zu einem Angriffsziel werden lässt. Was also tun? Zumindest bei kritischen Lücken empfiehlt sich das rasche Patchen tatsächlich, was ich jeweils komplett händisch erledige. So gibt es für einige der sieben neuen Lücken bereits entsprechende Veröffentlichungen im WordPress trac (Tickets 4689, 4690, 4691 und 4692). Weitere mögliche Workarounds findet man auch bei Alex von Buayacorp.

Der Aufbau von WordPress-Themes

Mit „WordPress-Themes verstehen 1“ startet Perun eine Artikelserie über den Aufbau der WordPress-Themenvorlagen. Im ersten Teil gehts vor allem um die Theorie: Was ist ein Template, welche Dateien, Funktionen, Template-Tags gibt es und was kann man damit anstellen. In Teil zwei wird es dann um das Classic-Theme gehen bis Perun dann im dritten Teil auf den Aufbau des Templates eingehen wird, das er selbst in seinem Blog nutzt.

Gerade für Einsteiger, die gerne einmal selbst Hand an ihr Template anlegen wollen, gilt hier: Lesebefehl!

Anzeige der eingehenden Links reparieren

Im WordPress-Adminbereich findet man auf der Startseite nicht nur einen Überblick über die neusten Beiträge und Kommentare, sondern auch über die neuesten „Incoming Links“ (oder in der deutschen Version „Eingehende Links“, welche via Technorati-Feed generiert werden. Seit einigen Tagen verändert sich diese Liste jedoch nicht mehr, woran eine interne Umstellung bei Technorati Schuld sein dürfte.

Wer auf eine aktualisierte Liste nicht verzichten will, kann die „Incoming Links“ durch eine kleine Änderung in der Datei „index-extra.php“ (welche sich im Ordner „wp-admin“ befindet) wieder zum Leben erwecken.

In Zeile 10 der Datei „index-extra.php“ muss

$rss = @fetch_rss('http://feeds.technorati.com/cosmos/rss/?url='. trailingslashit(get_option('home')) .'&partner=wordpress');

durch folgenden Code ersetzt werden:

$rss = @fetch_rss('http://feeds.technorati.com/search/'. trailingslashit(get_option('home')) .'');

Wer möchte, kann zudem auch das zur Anzeige der „Incoming Links“ gehördende „More »“ an den neuen Technorati-Syntax anpassen. Der Link funktioniert zwar nach wie vor, es kann aber sicher nicht schaden, auch diesen gleich den neuen Gegebenheiten anzupassen.

Dazu muss in Zeile 13 der Datei „index-extra.php“ der Link zu Technorati wie folgt angepasst werden:

Alte Version:
< ?php _e('More »'); ?>

Neue Version:
< ?php _e('More »'); ?>

Ich hoffe mit Stefan, der mit der Code-Anpassung ein wenig schneller war, dass die WordPress-Entwickler den Code in der nächsten WordPress-Version ändern, ansonsten die Anpassungen bei jedem Update erneut vorgenommen werden müssen.

WordPress und die Sicherheit

Rein gefühlsmässig hat die Anzahl der Updates und Upgrades von WordPress in den letzten Monaten, nicht zuletzt durch diverse Sicherheitslücken, ziemlich zugenommen. Dass auf Sicherheitslücken rasch reagiert wird, ist nicht nur löblich sondern auch notwendig. Allerdings scheint im Kampf mit der Zeit auch die saubere Programmierung zu leiden, denn die Sicherheitsprobleme häufen sich. Kaum ist eine neue Version verfügbar, werden auch schon die ersten Exploits herumgereicht.

Neuestes Beispiel ist die knapp 13 Tage alte WordPress Version 2.2 „Getz“, wo aufgrund eines Fehlers die Tabelle wp_users ausgelesen werden kann. Voraussetzung dafür ist allerdings ein gültiges Login auf dem Blog des Opfers (ein einfaches „Registrierter Leser“-Konto genügt jedoch bereits). Einen Workaround beschreibt Alex auf seiner Seite:

Dazu muss in der Datei xmlrpc.php die Zeile 541 wie folgt geändert werden:

$max_results = (int) $args[4];

WordPress hat diesen Workaround gestern auch in die Entwicklerversion übernommen, im derzeit angebotenen Download-Paket ist die Änderung allerdings nicht enthalten.

Von den Usern selbst wird in vielen Fällen aber auch die Pflege der eingesetzten Plugins vernachlässigt, was nicht minder gefährlich ist. So zum Beispiel beim Plugin wp-db-backup, welches standardmässig bei den Installationspaketen von WordPress 2.0.x enthalten war. Bis zur wp-db-backup-Version 2.0 war es einem Angreifer nämlich möglich, sich die Datenbanktabellen bequem per eMail zusenden zu lassen. Abhilfe schafft das Update auf die Version 2.1.2 des Plugins. Aufgrund der Tatsache, dass das Plugin zusammen mit den WordPress-Installationspaketen ausgeliefert wurde, ist die „Chance“ gross, dass wp-db-backup nach wie vor in grosser Zahl in der fehlerhaften Version genutzt wird.

Es liegt also nicht nur an den WordPress-Entwicklern, für die entsprechende Sicherheit zu sorgen. Auch die Anwender sollten sich regelmässig Zeit nehmen, Plugins und eigene Erweiterungen zu überprüfen.

(via Clazh)

[Update]
Wenn wir schon gerade bei Schwachstellen von WordPress-Plugins sind: Ein aktueller Fall betrifft das AdSense-Deluxe-Plugin, wo offenbar die Adsense-ID ausgetauscht werden kann. Noch gibt es keinen offiziellen Bugfix, doch David Kierznowski stellt auf seiner Seite einen temporären Fix bereit.

Individuelle WP Datenbank Fehlerseite

Die Fehlerseite die WordPress anzeigt, wenn keine Verbindung mit der Datenbank besteht, ist ziemlich hässlich. Und nicht nur das: Je nach Einsatzgebiet der Software kann es auch unprofessionell aussehen, wenn der Besucher eine Seite mit für ihn verwirrenden Erklärungen und WordPress-Logo vorgesetzt bekommt.

Standard WordPress Database Error

Leider bietet WordPress derzeit keine offizielle Möglichkeit, die Seite mit einem Template individuell zu gestalten. Auch die Nutzung eines Plugins fällt weg, da für die Plugin-Abfrage die Datenbankverbindung benötigt wird. Mit einem kleinen Hack kommt man aber doch zur eigenen Fehlerseite, inklusive einer Benachrichtigung per eMail an den Administrator.

Die liebsten WordPress-Plugins

Wordpress Plugin-Karneval

Unter dem Titel „Was sind Deine liebsten WordPress-Plugins?“ startet Michael vom software guide Blog einen Blog-Karneval und will wissen, welche Plugins man einsetzt oder für empfehlenswert hält. Ich verzichte hier mal auf die Auflistung aller von mir genutzten Plugins und weise nur auf die meiner Meinung nach etwas spezielleren Plugins hin, die hier und/oder beim Travelblogger im Einsatz sind:

  • Comment Justice Check
    Während Kommentare hier grundsätzlich unmoderiert sind, gibt es doch einige wenige kontroverse Posts, bei welchen ich die Kommentare zuerst in die Moderationsschleife schicken möchte. Mit Comment Justice Check lässt sich bequem festlegen, ob Kommentare zu einem bestimmten Posting moderiert werden oder nicht.
  • Add Link Attribute
    Die automatische Ausgabe der Links in der Sidebar durch WordPress stellte mich damals vor ein Problem, denn ich fand keinen (einfachen) Weg, den automatisch generierten Links ein „class“-Attribut hinzuzufügen. Add Link Attribute erlaubt es, der Ausgabe weitere HTML Tags hinzuzufügen.
  • Nofollow Case by Case
    Der Unsitte von WordPress, Links automatisch einen „nofollow“-Tag hinzuzufügen, kann mit diversen Plugins begegnet werden. Auch Nofollow Case by Case entfernt das „nofollow“ zuverlässig aus den Links, bietet darüber hinaus aber noch die Möglichkeit, einem Link trotzdem mal ein „nofollow“ zu verpassen. Äusserst praktisch in Situationen, wo der Kommentierende noch einen halbwegs passenden Text schreibt und man den Kommentar so vielleicht nicht gerade löschen will…
  • PXS Mail Form (de)
    Kurz und knapp: Endlich mal ein Mail-Formular, dass sich ohne grossen Aufwand umfassend konfigurieren lässt und auch einwandfrei funktioniert.
  • Advanced Search
    Eine schickes Replacement für die Standard-Suchfunktion von WordPress, damit die Suche auch wirklich ihren Namen verdient. Durchsucht nicht nur Beiträge sondern auch statische Seiten und lässt komplexere Suchabragen zu.
  • LiveSearch
    LiveSearch zeigt durch den Einsatz von Ajax schon beim Tippen des Suchstrings erste Ergebnisse an und soll die Suche so einfacher machen. Verwirrend allerdings, dass das Plugin nicht immer alle Treffer findet, so seinen Zweck nicht wirklich erfüllt und darum bald rausfliegen wird.

 

Weitere Posts zum Blog-Karneval:

(via Basic Thinking)

Kommentieren per Video oder Webcam

Die Kommentarfunktion in Blogs beschränkt sich bisher meist auf simplen Text mit einigen wenigen Formatierungsmöglichkeiten. Was aber, wenn nun auch Audio- und Videokommentare möglich wären? Grundsätzlich reizt mich diese Idee, auch wenn ich mir nicht sicher bin, ob das bei euch Lesern überhaupt ankommt oder einfach als unnötiges Gimmick betrachtet wird.

Darum die Probe aufs Exempel: Das hier installierte WordPress-Plugin zeec embedded Uploader ermöglicht multimediale Kommentare zu diesem Post. Da das Ganze erstmal nur ein Test ist, habe ich das Plugin nur für diesen einen Post freigeschaltet. Wer also einen Kommentar zu diesem Post als MP3, Videodatei oder per Webcam hinterlassen möchte, ist herzlich dazu eingeladen…

Die Technik dahinter ist eigentlich relativ simpel: Die Multimedia-Dateien werden zu zeec.de hochgeladen und dort in meinem Account als öffentlich zugängliche Dateien abgespeichert. Das Plugin zeec embedded Uploader bindet das Upload-Tool hier im Blog ein und sorgt gleichzeitig dafür, dass die entsprechende Multimedia-Datei im richtigen Kommentar angezeigt wird. Leider vergehen vom Hochladen bis zur Anzeige der Datei im Kommentar ein paar lange Minuten, aber vielleicht wird das ja auch mal noch besser.

Wer nun meint, dass das Plugin mit der Möglichkeit, Bilder und Videos hochzuladen, optimale Bedingungen für mögliche Copyright-Verstösse bietet, hat wohl nicht ganz unrecht. In der neuesten Plugin-Version gibts deshalb im Admin-Bereich auch die Möglichkeit, lediglich Webcam-Kommentare zuzulassen und den Datei-Upload zu verhindern. Ich habe hier bewusst auf diese Einschränkung verzichtet, hoffe aber, dass ihr beim Upload auf mögliche Urheberrechte achtet. Ansonsten kann es passieren, dass euer Kommentar ziemlich schnell wieder gelöscht ist.

Noch ein Wort zum Upload: Es reicht nicht nur eine Datei hochzuladen, sondern es müssen nach dem Upload wie gewohnt auch noch die üblichen Angaben wie Name und eMail ausgefüllt und das Kommentarformular abgeschickt werden…

Erweiterte Suche für WordPress

Dass die integrierte Suchfunktion von WordPress nicht die raffinierteste ist, ist eigentlich kein Geheimnis. Das AdvancedSearch-Plugin stattet WordPress nicht nur mit einem schicken Suchformular aus, sondern unterstützt auch komplexere Suchabfragen, wie man sie von Suchmaschinen kennt (z.B. +, -, *, “ „). Möglich macht dies die Nutzung der Volltext-Indexierung von MySQL, was umgekehrt aber den (kleinen) Nachteil hat, dass die WordPress-Datenbank etwas grösser wird.

Wenn sich das zu Testzwecken beim Travelblogger installierte Plugin bewährt, werde ich das wohl auch auf meinen anderen Blogs einsetzen, um mich nicht mehr über die rudimentären Suchfunktionen von WordPress ärgern zu müssen.

Admin-Menu von WordPress anpassen

Dass sich WordPress bestens für kleinere CMS-Projekte eignet, ist inzwischen ja den meisten bekannt. Meist werden in solchen Fällen aber Menueinträge in der Administration angezeigt, die für das CMS gar nicht gebraucht werden und den Endkunden so nur verwirren.

Das Plugin Custom Admin Menu von Barun Singh schafft hier Abhilfe. Nicht nur können Teile der Admin-Navigation ausgeblendet werden, sondern auch die Anordnung der Menupunkte lässt sich verändern. Und wer mit der Namensgebung eines Reiters nicht zufrieden ist, darf diesem auch einen neuen Namen verpassen.

Screenshot - Custom Admin Menu

Ziemlich nützliches Plugin und bereits bei mehreren meiner Projekte im Einsatz. Übrigens auch auf den WordPress-Versionen 2.1.x, obwohl die Plugin-Homepage nur Kompatibilität mit 2.0.x-Versionen verspricht.