Tag: Blog

Google Webmaster Sitemap: Gekürzte Antwort

Schon seit längerem zeigen die Google Webmaster Sitemap, unter dem Menüpunkt Crawling-Fehler, an dass bis zu 78% der BugBlog Seiten eine “Gekürzte Antwort” zurückgeben. Vor einem Monat waren es noch überwiegend “Zeitüberschreitung beim Verbindungsaufbau”, die jedoch durch die Deinstallation einer WordPress-Erweiterung, mit welcher PHP-Code direkt in einen Post geschrieben werden konnte und damit inkompatibel war zu einer Erweiterung um PHP-Code hervorzuheben, behoben wurde.

Im Access-Logfile vom Apache lässt sich das Ganze nachvollziehen. Neben der Größe muss dabei auch der Statuscode berücksichtigt werden, da bspw. Urls ohne abschließenden / einen 301 (Redirect) zurückliefern. Der Aufbau findet sich hier: http://httpd.apache.org/docs/2.2/logs.html

[PHP]
[04/Nov/2012:22:28:57 +0100] “GET /seo/bots-bots-bots/2011/05/29/ HTTP/1.1” 200 7547 “-” “Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”
[08/Nov/2012:12:39:03 +0100] “GET /seo/bots-bots-bots/2011/05/29/ HTTP/1.1” 200 29952 “-” “Mozilla/5.0 (compatible; Infohelfer/1.3.0; +http://www.infohelfer.de/crawler.php)”
[09/Nov/2012:04:23:32 +0100] “GET /seo/bots-bots-bots/2011/05/29/ HTTP/1.1” 200 29950 “-” “Mozilla/5.0 (compatible; SISTRIX Crawler; http://crawler.sistrix.net/)”
[10/Nov/2012:20:14:27 +0100] “GET /seo/bots-bots-bots/2011/05/29/ HTTP/1.1” 200 7528 “-” “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; […])”
[/PHP]

Es ist erkennbar, das immer der Erfolgs-Statuscode 200 (OK) zurückgegeben wird, die Antwort jedoch zwischen 7547 und 29952 Bytes variiert. Kleinere Abweichungen sind dabei durchaus möglich, weil unterhalb der Posts verschiedene weitere relevante Posts angezeigt werden. Dies erklärt aber nicht eine Abweichung von bis zu 75% nach unten.

Google Webmaster Sitemap URL Fehler vom BugBlog

Als nächstes werde ich nochmal mit wget versuchen dem Fehler auf die Spur zu kommen, bzw. habe ich das LogLevel im Apache auf “info” gestellt und erhoffe mir dadurch weitere “sachdienliche Hinweise” ;-) Die Google Webmaster Sitemap bzw. der Menüpunkt Crawling Fehler lässt keine weiteren Rückschlüsse auf die Ursachen zu. So habe ich keine Einstellungsmöglichkeiten gefunden das Frontend auf Englisch umzustellen, um nach der Fehlermeldung besser suchen zu können, noch werden die fehlerhaften URLs aufgeführt.

5 Tipps für das richtige WordPress Theme

Täglich liest man in irgendwelchen Blogs von neuen coolen Themes für den WordPress Blog. Von dem neuen Design geblendet übersieht man manchmal, das manche Funktionen nun nicht mehr verfügbar sind. Das Design folgt also nicht der Funktion, sondern umgekehrt. Dies ist für Besucher natürlich besonders ärgerlich und so wird das neue Design schnell zum Hassobjekt, wenn liebgewonnene Funktionen nun nicht mehr zur Verfügung stehen.

Besonders ärgerlich ist es, wenn man ein passendes Design nicht erweitern kann. Deshalb eine kleine Checkliste, die helfen soll sich im WordPress Theme Dschungel zurecht zu finden.

1. Unter welcher Lizenz wurde das Theme veröffentlicht? Für private oder nicht kommerzielle Zwecke ist es meist kostenlos. Diese Lizenz könnte man schon verletzen, wenn man Anzeigen auf seiner Seite platziert. Ich empfehle ein Theme was sowohl für private und kommerzielle Zwecke verwendet werden kann.

2. Welche Funktionen sind auf den Screenshots zu erkennen? Bereits auf den Screenshots von vielen Themes ist zu erkennen ob es statische Seiten gibt oder Kategorien. Bei WordPress Themes die besonders individuell sind, kann man davon ausgehen, dass keine Widgets unterstützt werden.

3. Ist das Theme für Suchmaschinenoptimierung geeignet? Für WordPress gibt es mittlerweile eine unzählige Anzahl an Plugins zur Suchmaschinenoptimierung. Diese fängt jedoch schon bei der Auswahl des Themes an. So sollte man Bildtexte nicht fest verdrahten müssen. Bilder kann Google nicht lesen.

4. Designer sind keine Programmierer. Bevor man ein Theme fest in seinem WordPress installierte sollte man es vorher in verschiedenen Browsern testen. Für einen schnellen Test eignet sich dafür der neue Lunascape Browser.

5. Werden PSD Dateien bereitgestellt? Neben dem Archiv für den Blog sollte man auch schauen, das man sich die PSD Dateien speichert. Diese können später nützlich sein, wenn man den Blog erweitern will. Oder mal die Farben ändern will.

Wer diese 5 Tipps befolgt, sollte die Anzahl von Themes stark reduzieren können und sich später nicht ärgern müssen, wenn man irgendwann das Theme wechseln muss, weil es nicht anpassbar ist.

Die Anforderungen steigen – WordPress Plugin List

Noch ist mein Blog nicht ganz fertig, was man vielleicht auch an der einen oder anderen Stelle merkt. Zum Einen fehlen noch die statischen Seiten, die anscheinend vom Template nicht unterstützt werden. Zum Anderen fehlen mir noch ein paar Erweiterungen / Plugins.

Bisher habe ich folgende Plugins installiert:

  • Akismet
  • FeedBurner FeedSmith
  • Google XML Sitemaps
  • iG:Syntax Hiliter
  • Marekkis Watermark-Plugin
  • Post Teaser
  • Post to PDF
  • Simple Tags
  • WP lightbox 2

Wie bereits oben erwähnt fehlt mir noch ein Glossar Plugin. So wie es im Moment ausschaut, werde ich dieses wohl selber programmieren müssen, weil es bisher noch nichts fertiges für WordPress gibt. Wie dies genau abläuft werde ich im Blog berichten.

Außerdem hätte ich gerne noch ein Plugin, welches einen direkten Zugriff auf meine Downloaddateien verhindert oder entsprechend korrigiert und protokolliert. In der WordPressgemeinde scheint es dafür bisher kein Bewusstsein zu geben und dem entsprechend auch kein Plugin, von daher wird dieses wohl auch selber programmiert werden müssen.

Sollte jemand entsprechende Plugins kennen, die bereits eine entsprechende Funktionalität zu den obigen Themengebieten bieten, wäre ich für einen Kommentar dankbar.

WordPress 2.6.5 is available! Please update now.

Gestern Nachmittag hatte ich bei Securityfocus erst die Anzahl von Vulnerabilities zwischen Typo3 und WordPress verglichen. Typo3 kam auf zwei Seite, WordPress auf drei. Wobei viele Meldungen auf Typo3 Extensions entfallen. WordPress hat diesen Bonus nicht.

Bevor ich jetzt jedoch die ganze Update Prozedur starte, habe ich mir die Unterschiede zwischen WordPress 2.6.3 und WordPress 2.6.5 angeschaut. Die WordPress Version 2.6.4 wurde übersprungen, da es wohl eine Fake Version gab.

Das Update würde insgesamt nur 5 Dateien betreffen. Dafür den Aufwand treiben, die Datenbank zu sichern, alles löschen, das ganze WordPress Paket einspielen, ist mir zu aufwendig. Ich werde es händisch machen und mir dabei gleich mal die Fehler anschauen.

In einer Datei wird bloß die Versionsnummer hochgezählt. Manche Blogs behaupten, das Technorati Blogs aus dem Index schmeißt, die eine ältere WordPressversion verwenden, wie alt diese jedoch sein muß konnte ich bisher nicht herausfinden. Prinzipiell ist dies jedoch für mich ein Schwachstelle, wenn man “von außen” herausfinden kann, auf welcher Version ein System läuft. Dadurch wird es dem Angreifer umso leichter gemacht, den richtigen Hebel auszuwählen um anzusetzen.

Schauen wir uns einen weiteren Fehler an. Dies soll keine Klugscheißerei werden, denn die kann keiner leiden, aber nur aus Fehlern lernt man.

[php]
// File: /wp-admin/users.php

129 129 $go_delete = false;
130 130 foreach ( (array) $userids as $id ) {
131 $id = (int) $id;
131 132 $user = new WP_User($id);
132 133 if ( $id == $current_user->ID ) {
[/php]

Zeile 5 bzw. 131 ist neu. Bevor die Variable $id an WP_User übergeben wird, wird sie nach int gecasted. Dies ist auch sinnvoll, denn ursprünglich kommt das Array direkt aus einem Formular und nicht etwa aus der Datenbank.
Was mir jedoch nicht ganz schlüssig ist, warum wird der Cast nicht direkt in der Methode gemacht? Die Methode wird bestimmt noch an mehreren Stellen aufgerufen und man sollte der Methode die Verantwortung übertragen, sicherzustellen, das nur die richtigen Werte übertragen werden.

Betrachten wir noch eine weitere Lücke, die verdeutlichen soll, warum PHP Anwendungen so anfällig sind. In Programmiersprachen wie Java oder JavaScript wäre der Fehler schon von Anfang an aufgefallen.
Sehen wir uns zuerst den alten Code an:
[php]
// File: /wp-includes/feed.php

498 echo ‘http’
499 . ( $_SERVER[‘https’] == ‘on’ ? ‘s’ : ” ) . ‘://’
500 . $_SERVER[‘HTTP_HOST’]
501 . wp_specialchars(stripslashes($_SERVER[‘REQUEST_URI’]), 1);
[/php]

Und nun die Neue:

[php]
// File: /wp-includes/feed.php

498 $host = @parse_url(get_option(‘home’));
499 $host = $host[‘host’];
500 echo clean_url(
501 ‘http’
502 . ( (isset($_SERVER[‘https’]) && $_SERVER[‘https’] == ‘on’) ? ‘s’ : ” ) . ‘://’
503 . $host
504 . stripslashes($_SERVER[‘REQUEST_URI’])
505 );
[/php]

Bevor jetzt also geprüft ob der $_SERVER[‘https’] == ‘on’ wird erstmal überprüft ob die Variable ob überhaupt gesetzt ist. Wenn die Variable nicht gesetzt ist, macht es auch keinen Sinn zu überprüfen ob sie on ist. Sollte die erste Bedingung bereits fehlschlagen wird sofort abgebrochen. Dafür sorgt das &&.

WordPress – Typo3 im Vergleich

Der Stillstand des Blogs hing unter anderem damit zusammen, dass mich die vielen Sicherheitslücken genervt haben. Ich habe nicht die Zeit und Lust meinen Blog jede Woche zu aktualisieren oder mit der Angst leben zu müssen, dass mein Blog gehackt wird.

Deshalb hatte ich mich in der Zwischenzeit gefragt ob Typo3 nicht die bessere Alternative wäre. Obwohl ich mit Typo3 auskenne und mein Server entsprechend konfiguriert ist, habe ich mich für die bestehende WordPress Installation entschieden.

Dies lag vor allem daran, das ich erkannt habe, WordPress ist fürs Bloggen gemacht. Mit Typo3 kann man auch bloggen jedoch sind dafür Erweiterungen nötig, die auch wieder konfiguriert werden möchten.

Ein weiterer Schwachpunkt ist das Design. Es gibt sowohl für Typo3 als auch für WordPress genug freie Themes und Templates. Jedoch sind die in Typo3 schwieriger einzubinden und nun auch nicht unbedingt für Webseiten mit Kommentarfunktion gedacht.

Die Funktionsvielfalt von Typo3 vermisse ich jetzt schon. Besonders die Funktionalität mehrere Inhaltsspalten zur Verfügung zu haben. WordPress ist nun mal wirklich nur zum Bloggen gedacht und nicht um Inhalt zu verwalten wir ein Content Management System – Typo3.

[random_content group_id=”211″ num_posts=”1″]