Plesk zum Ersten, zum Zweiten und zum Letzten – aber zum Allerletzten!

Erst einmal ein großes SORRY an alle, die heute meinem Blog nutzen konnten. Was genau passiert ist lest ihr in den nachfolgenden Zeilen.

Zum Ersten

Mein Tag fing mal wieder prächtig an. Auf meinem Handy sah ich gleich nach dem Aufwachen, dass mein Blog, mal wieder, down war. Der Grund war mal wieder Plesk. Statt meiner Blogstartseite sah ich nur die „Plesk Default Page“. Leider war dies auch bei allen anderen auf dem Server gehosteten Seiten so. Ich vermutete gleich, dass irgendetwas mit der Einstellung der Domains und Plesk defekt war. Aber darauf zugreifen konnte ich nicht, da die Datenbank vom Plesk, mal wieder, nicht erreichbar war.

Weiterlesen →

WordPress Core Strings ohne Verlust beim nächsten Update überschreiben

Auf dem letzten WP Meetup Potsdam hat Caspar eine kleine Einführung in das Thema Multisite gegeben. Dabei päsentierte er auch kurz das Einrichten eines neuen Blogs im Netzwerk. Als er sich im Dashboard angemeldet hatte wies er uns auch darauf hin, dass er die Bezeichnung „Dashboard“ in „Übersicht“ umbenannt hat, da dies wohl für einige Kunden besser verständlich ist.

Der falsche Weg

Auf die Nachfrage, wie er es denn umbenannt hätte, musste er dann zugeben, dass er die originale Datei überschrieben hat. Oder er hatte sie komplett kopiert und dann den einen String geändert, das weiß ich nicht mehr so genau. Aber auf jeden Fall waren wir uns alle einige, dass dies eine sehr schlechte Lösung des Problems ist. Spätestens beim nächsten großen Update, wie z.B. bald auf Version 3.4, wird auch die Übersetzungsdatei wohl wieder überschrieben werden müssen. Alle geänderten Übersetzungen sind somit verloren und müssen erneut überschrieben werden. Ich war mit aber sehr sicher, dass es dafür eine bessere Lösung gibt.

Weiterlesen →

Dropbox verschenkt 5GB zusätzlichen Speicherplatz

Ich nutze schon seit längerem Dropbox zum synchornisieren wichtiger Daten. Da aber selbst meine 3GB ab und zu voll laufen und ich kein kostenpflichtes Angebot nutzen möchte, muss ich ab und zu wieder Dinge aus der Dropbox verschieben.

Zur Zeit hat aber Dropbox eine Aktion. In einer neue Beta-Version kann man eine Funktion zum automatischen synchroniseren von Fotos auf einer Speicherkarte testen. Wer an dem Beta-Test teilnimmt erhält automatisch 500MB zusätzlich. Nachdem ich die Beta jetzt gestestet habe sieht es so aus, als bekommt man die ersten 500MB auch erst nach dem Upload des ersten Bildes. Die insgesamt zusätzlichen 5GB erhält man, indem man Bilder hochlädt. Pro 500MB an Bildern, die man hochlädt, bekommt man weitere 500MB zusätzlich gutgeschrieben. Der Zusatzspeicher kann auch nach Ablauf der Aktion weiter genutzt werden.

Wer also auch seinen Speicherplatz erhöhen möchte, findet in diesem Forum Post die Downloads der Beta-Versionen für Windows, Linux und Mac: Experimental Forum Build – 1.3.14. Weitere Informationen gibt es auf den Hilfeseiten von Dropbox.

Wer noch kein Dropbox-Konto hat und gleich mit 250MB mehr starten möchte, kann diesen Link benutzen: Bei Dropbox anmelden.

Mein erstes WP Meetup in Potsdam

Wie einige von euch wissen, war ich die letzten beiden Jahre auf den WordCamps in Berlin und Köln. Beide waren sehr unterschiedlich, aber ich habe bei beiden neue Dinge gelernt und nette Leute kennengelernt. Aber was macht man nun die restlichen 11 Monate im Jahr, während man auf das nächste WordCamp wartet? Die Anwort: WP Meetups. Hier trifft man Gleichgesinnte in einer sehr lockeren Atmosphäre und tauscht sich über ein bestimmtes Thema oder allgemein über WordPress aus.

Am Mittwoch hat es mich also vor die Tore der Hauptstadt gezogen und trotz langer Anreise hat es sich gelohnt. Einen Bereicht über die Teilnehmer inkl. Foto findet ihr in dem Beitrag von Caspar, der einer der beiden Initiatoren des Potsdamer WP Meetups ist. Es gibt auch eine Facebook Seite sowie eine Google+ Seite zum Potsdamer WP Meetup. Dort könnt ihr immer nachlesen, wass das nächste WP Meetup stattfindet und was dort als Thema vorgeschlagen wird. Das nächste findet am 14. Februar 2012 statt und so wie es im Moment aussieht werde ich wohl zum Thema „Grundlagen der Plugin-Programmierung“ einen kleinen Vortrag halten. Wer mich also mal im „real life“ treffen möchte und noch dazu etwas zur Plugin-Programmierung erfahren möchte, der muss nur noch seiner Freundin oder seinem Freund erklären, wieso er am Valentinstag nicht da ist 😉

Schutz der Website oder des Blog vor massiven Zugriffen durch Crawler oder Angreifer

Heute bekam ich über mein Monitoring-Tool mal wieder eine Mail, dass mein Blog gerade down ist. Bei allen, die das vorhin getroffen hat, möchte ich mich hiermit auch entschuldigen. Aber wieso war mein Blog mal wieder down, wo er doch in letzter Zeit so gut gelaufen ist?

Crawler: Plage oder Segen?

Jeder von uns, der eine Website hat freut sich wohl, wenn den Google Crawler regelmäßig vorbeischaut und dabei möglichst alle neuen schon nach wenigen Minuten in den Index befördert. Da der Google Crawler dabei auch automatisch auf die Performance einer Website achtet um kleine Seiten nicht zu überlasten, fällt es auch nicht weiter auf, wenn er gerade am Werk ist.

Aber leider gibt es nicht nur den Google Crawler sondern mittlerweile eine unüberschaubar große Anzahl davon. Heute hat sich also ein neuer Crawler ans Werk gemacht und meine Website im Turbogang mit Anfragen beschossen. Das ist für den kleinen V-Server dann doch etwas zu viel geworden und er hatte innerhalb kürzester Zeit eine Auslastung von 4500%!

Weiterlesen →

Handy verloren, was tun? Ein Survival-Guide für Android-Besitzer.

Am Freitag ist es mir passiert. Ich nahm nachts von der Weihnachtsfeier unseres Büros ein Taxi nach Hause. Als es ans bezahlen ging legte ich mein Handy kurz zur Seite um meinen Geldbeutel rauszuholen. Ich bezahlte, nahm meinen Rucksack und stieg aus. Keine 10 Sekunden später stellte ich dann fest, dass mein Handy nicht mehr in meiner Tasche war. AH! Ich rannte zwar dem Taxi noch hinterher, aber es sah mich wohl in der Dunkelheit nicht winken.

Die Rettung meines Handys

Zum Glück hatte ich mir vor langer Zeit mal genau für einen solchen Fall eine App auf meinem Android installiert: die App Android Lost. Diese ist recht einfach einzurichten und bietet einem später über das Online-Portal www.androidlost.com sehr viele Möglichkeiten zur Rettung seines geliebten Handys.

Weiterlesen →

Server Downtimes und keine Erklärung in Sicht

Am Freitag habe ich auf meinem Server nach Rootkits suchen lassen. Die beiden Skripte dazu stelle ich euch hier demnächst mal kurz vor. Es sah danach alles sehr gut aus. Leider war ich dann eine Weile nicht am Rechner und in dieser Zeit stürzte der Apache-Server aus bisher ungeklärten Gründen ab und war über 3 Stunden nicht erreichbar. Nach Analyse der Logfiles fand ich viele Angriffe, die auf die Sicherheitslücke in der TimThumb hindeutete. Ein Angreifer versuchte bei mir die Funktion im Plugin UberMenu zu attackieren. Es ist aber schon schlimm, dass ein „Premium Theme“ eine solche Sicherheitslücke aufweist. Zum Glück setze ich dieses Plugin nicht ein. Ich habe auch ansonsten alle Plugins und Themes gelöscht, die TimThmub einsetzen.

Heute musste ich dann leider feststellen, dass der Server erneut down war. Da das Monitoring über Pingdom mir leider keine Nachricht auf mein Handy schickte, bemerkte ich es erst nach über 7 Stunden! Hiermit möchte ich mich auch bei allen Entschuldigen, die in dieser Zeit vergeblich versucht haben meinen Blog zu erreichen.

Ich weiß leider noch immer nicht, was genau zu den beiden Ausfällen geführt hat. Die einzige größere Änderung der letzten Tage war die Installation des WP Super Cache Plugins. Falls jemand von euch weiß, ob es damit zu Abstürzen des Apache Prozesses kommen kann, dann wäre ich ihm für einen Kommentar sehr dankbar.

Ich werde jetzt meinen Server ein bisschen besser im Auge behalten. Sobald ich den Fehler gefunden habe, werde ich euch natürlich sofort berichten, woran es lag. In diesem Sinne noch ein schönes Wochenende!

Pflege des Backend Localization Plugins

Ich habe mir am Wochenende mal mein Backend Localization Plugin vorgenommen und dieses etwas aktualisiert. Zum einen sah die Sprach-Auswahl im Login-Formular nicht mehr besonders schön aus, da mit WordPress 3 das CSS dazu geändert wurde. Zusätzlich kamen einige neue Sprachen dazu, in die WordPress mittlerweile übersetzt ist (bzw. noch übersetzt wird). Hier mal eine Liste der neu hinzugekommenen Sprachen:

ISO 639 Name
es_CL Spanisch (Chile)
es_PE Spanisch (Peru)
es_VE Spanisch (Venezuela)
fa_AF Persisch (Afghanistan)
fy Westfriesisch
gd Schottisch-Gälisch
haw_US Hawaiisch
hy Armenisch
is_IS Isländisch
jv_ID Javanisch
kea Kabuverdianu
kk Kasachisch
kn Kannada
li Limburgisch
me_ME ???
mg_MG Malagasy
mn Mongolisch
ne_NP Nepali
nl_BE Niederländisch (Belgien)
pa_IN Panjabi
sa_IN Sanskrit
so_SO Somali
srd Sardisch
ta_LK Tamilisch (Sri Lanka)
zh_TW Chinesisch (Taiwan)

Es ist immer sehr aufwändig diese Liste zu pflegen, da ich erst einmal feststellen muss, was sich hinter dem ISO 639 Code verbirgt. Ich konnte aber bis auf einen Code alle finden. Wenn also jemand von euch weiß, welche Sprache sich hinter me_ME verbirgt, dann würde ich mich über einen Kommentar dazu sehr freuen.

Was man aber auch sehr gut an dieser Liste sehen kann ist die schnelle Verbreitung von WordPress in viele Regionen der Welt. Insgesamt enthält das offizielle Sprachdateien-Repository von WordPress mittlerweile 94 Sprachcodes. Hier ist aber z.B. für Deutschland nur die „Du-Version“ enthalten. Die eigentliche Anzahl an unterschiedlichen „Sprachen“ liegt also vermutlich noch um einiges höher.

Plugins und Sicherheit: Sicherheitslücke in Filedownload Plugin geschlossen

Aus gegebenem Anlass kommt heute mal ein Artikel zu einem sehr heiklen Thema: Plugins und Sicherheit. Ein mir bekannter Blog wurde letzte Woche gehackt. Anschließend konnte man auf diesem nur noch Space Invaders spielen. Glücklicherweise war es ein sehr netter Hacker, der seine Tat zugab und auch gleich erklärte, was falsch gemacht wurde und wie er damit ohne Probleme den Blog hacken konnte.

Funktion des Plugins

Die Sicherheitslücke steckte in dem Plugin Filedownload. Dieses Plugin wird eingesetzt um eine in WordPress hochgeladene Datei direkt zum Download anzubieten. In der Regel öffnet ein Browser ja eine Datei, die er direkt anzeigen kann, wie z.B. ein Bild oder eine PDF-Datei. Dieses Plugin gibt aber nun die angeforderte Datei so an den Browser zurück, dass dieser das Download-Dialogfenster öffnet und den Benutzer zum Download der Datei auffordert.

Weiterlesen →

Valides XHTML mit dem Google Analytics for WordPress Plugin

Gestern Abend hatte ich mir mal wieder die Zeit genommen meine Startseite auf invaliden Quellcode hin zu untersuchen. Da meine Seite noch XHTML als Doctype verwendet, gab es einige Fehler bzgl. Der „target“ Attribute in der Blogroll. Nach langer Recherche konnte ich das sehr beliebte Google Analytics for WordPress Plugin von Joost de Valk als Fehlerquelle ausmachen.

Das Problem

Man kann nun aber dem Plugin nicht wirklich einen Vorwurf machen. Nachdem ich den Quellcode des Plugin sowie die Ausgabe der Blogroll im WordPress Core untersucht habe, konnte ich auch keine bessere Einbindung finden als die im Plugin verwendete. Es fehlt leider ein Filter, mit dem man den Link Tags zusätzliche Attribute anhängen kann. Da aber bei aktivierten Outlink-Tracking noch ein „onclick“ Attribut notwendig ist, wurde es vom Plugin-Entwickler eben an das „target“ Attribut angehängt. Damit war denn der Inhalt des selbigen nicht mehr leer und es wurde ausgegeben, auch wenn der Link für die Blogroll im Backend auf „none“ gestellt war.

Die Lösung

Es gibt glücklicherweise eine recht einfache Lösung für das Problem. Da es einen Filter für die gesamte Ausgabe der Blogroll gibt, können wir hier ansetzen. Wir entfernen einfach sämtliche leere „target“ Attribute im Ausgabestring mit folgendem Snippet:

function remove_empty_target($content){
        return str_replace('target="" ', '', $content);
} add_action('wp_list_bookmarks', 'remove_empty_target');

Das Snippet fügt ihr einfach in die functions.php Datei eures Themes an einer beliebigen Stelle ein. Wer für seine Seite ein Theme verwendet, das als Doctpye HTML5 nutzt, der kann diesen Tipp getrost ignorieren. Denn in HTML5 ist das „target“ Attribut wieder enthalten. Trotzdem halte ich noch immer die Angewohnheit externe Links mit einem target="_blank" in einem neuen Tab/Fenster zu öffnen für eine Todsünde der Usabilty. Aber im Zusammenhang mit Formularen und JavaScript kann ein „target“ Attribut durchaus Sinn machen und notwendig sein.