Mit Captchas gegen Kommentar-Spam und das nächste Problem

Ich habe nun meine Kommentar-Funktion um ein Captcha erweitert. Ich hoffe nun, dass ich damit den Kommentar-Spam etwas in den Griff bekomme.

Doch schon zieht neuer Ärger auf: Heute früh wurde die Trackback-Funktion entdeckt. Innerhalb kurzer Zeit wurde ich mit Trackback-Spam überschüttet.

Als Useragent wurde Net::Trackback/1.01 benutzt. Die Zugriffe kamen von den IP-Adressen 85.255.119.82 bis 85.255.119.86. Diese lösen in die Namen 85.255.119.82-xbox.dedi.inhoster.com bis 85.255.119.86-xbox.dedi.inhoster.com auf und gehören zu Inhoster hosting company in der Ukraine.

Ich habe zunächst das automatische Freischalten der Trackbacks deaktiviert. Da bei Trackbacks ja gerade das automatische Aufrufen der Sinn des Ganzen ist, wird es hier sehr viel schwieriger sein, dem Spam Herr zu werden.

Alles neu macht der (zur Zeit wenig) Goldene Oktober

Auch bei privaten Website tut ab und zu ein Relaunch Not. Ich habe mich das eine oder andere Mal über die zeitweise schlechte Erreichbarkeit meines Blogs unter http://jerrywho.blogg.de geärgert und einen ersten Versuch mit einer fertigen Blog-Software (in diesem Fall Serendipity) gestartet. Allerdings bin ich damit nicht wirklich glücklich geworden. Aus diesem Grund habe ich eine komplette Eigenentwicklung getätigt. So ist dieses Blog hier entstanden. Man erkennt auf den ersten Blick, dass ich kein Webdesigner bin 😉 Die Zuschriften und Kommentare im alten Blog haben mir aber gezeigt, dass der Inhalt doch für den einen oder anderen von Interesse ist. Dies gibt soviel Motivation, dass ich nun in diese nächste Stufe starte. Dabei habe ich einiges übebr Trackback und Pingbacks gelernt. Zunächst stand eine riesige Verwirrung auf dem Plan. Ich habe mich nun aber entgegen meines ersten Gefühls für die Trackbacks entschieden, die ich zu unterstützen gedenke. Mal schauen, was die Zukunft bringt, sprich ob es ankommt.Auch die Idee, von Anfang an XHTML 1.0 unterstützen zu wollen, brachte einige Schmerzen. Diese Schmerzen waren aber nichts zu denen, die mein persönlicher Umstieg von Perl auf PHP mit sich brachte. Ich fühlte mich (und fühle mich zum Teil noch immer) so, als hätte man mir eine Hand auf dem Rücken fest gebunden. Aber nur durch das tägliche Arbeiten fallen einem die kleinen aber bisweilen in der Praxis riesigen Unterschiede zwischen Perl und PHP auf, und man lernt in beiden Welten zu leben.Das bringt mich auch gleich zu den fünf Phasen, die man laut Kai Laborenz‚ Buch CSS-Praxis durchleben muss:

  1. Vorsichtige Annäherung („Was ist das überhaupt?“)
  2. Naive Begeisterung („Super! Ich verwende ab sofort nichts anderes mehr!“)
  3. Ernüchterung („Das geht doch alles nicht …“)
  4. Durchkämpfen („Aha – es geht also doch!“)
  5. Routine und Neugier (CSS als Standardansatz und Erforschung der Randbereiche)

Als jemand, der seinerzeit noch mit XMosaic auf AIX und Windows 3.1 (ja, auch damit konnte man ins Netz) gearbeitet hat (von surfen sprach damals noch niemand) und das WWW noch als Weiterentwicklung von gopher erklärt wurde, habe ich die Probleme durch den Browserkrieg voll mitbekommen: Eine Website, die überall gut aussieht, kommt eigentlich nicht ohne Layout-Tabellen aus. (Hat hier jemand Jehowa gesagt ??) CSS funtkionierte eigentlich bis vor kurzem einfach nicht.Und auch jetzt treten bisweilen Probleme bei den einzelnen Browsern auf. Daher habe ich mir die folgenden Browser herausgepickt, auf denen diese Website gut auszusehen hat:

  1. Internet Explorer 6.0 (wohl oder übel)
  2. Firefox 1.5 (und nach Erscheinen 2.0)
  3. Opera 9
  4. Internet Explorer 7.0 RC1 (und dann später das Final Release)

Um dieses Projekt bei relativ geringen Kosten aber dennoch mit hoher Flexibilität bei der Umsetzung bestreiten zu können, habe ich mich für einen VServer bei vollmar.net entschieden. Bis jetzt hat sich dies auch als eine gute Entscheidung erwiesen. Die HTTP-Ping-Zeiten, die ich per Smokeping ermittle, sind sehr konstant. Mal schhauen, wie es aussieht, wenn diese Seite richtig brummt 😉 Für alle, die noch nicht meine Schwerpunkte in diesem Blog kennen (und für Google als Einstieg …) hier eine Übersicht:

  1. Unter dem Thema DSL beschreibe ich vorallem meine Probleme, die ich mit meinem DSL-Anschluss und den diversen DSL-Modem der T-Kom (Teledat 302, 330, 331 und 430) habe/hatte
  2. Zum Firefox und seinen Erweiterungen schreibe ich.
  3. Einige Artikel behandeln diverse Dinge rund um Debian
  4. VMware, SuSE Linux Enterprise Server, Security und Bloggen sind weitere Themen.

Pingbacks und Trackbacks

Ich befasse mich gerade mit Trackbacks und Pingsbacks bei Blogs.
Um das ganze richtig zu verstehen, schreibe ich gerade meine eigene Blog-Software. Ich habe dazu auf http://meiert.com/de/publications/translations/hixie.ch/pingback/
eine schöne Beschreibung der Pingback-Technik gefunden. Soviel ich sonst so gefunden habe, handelt es sich bei Trackback um eine Technik, die hauptsächlich von Movable Type benutzt wird.
Aus diesem Grund möchte ich in meiner Blog-Software zunächst Pingbacks implementieren.
Nun stoße ich auf folgendes Problem:
Laut der obigen Beschreibung ruft der Client den Pingback-Server mit zwei Parametern auf: sourceURI und targetURI
Dort wird auch auf http://www.xmlrpc.com/spec verwiesen, um zu sehen, wie genau das XML, was zwischen Client und Server ausgetauscht wird, auszusehen hat. Dort ist nur ein Beispiel für einen Request mit mehreren Parametern angegeben. Der Request müsste demnach
die Paramter so übergeben:
<struct>
   <member>
      <name>sourceURI</name>
      <value><string>http://source.uri</string></value>
   </member>
   <member>
      <name>targetURI</name>
      <value><string>http://target.uri</string></value>
   </member>
</struct>
Ein solches Konstrukt kann ich auch leicht mit der PHP-XMLRPC-Funktion
xmlrpc_encode_request() zusammenbauen:
$params = array ("sourceURI" => "http://source.uri", "targetURI" => "http://target.uri");
$request = xmlrpc_encode_request(‚pingback.ping‘, $params);
<methodCall>
<methodName>pingback.ping</methodName>
<params>
 <param>
  <value>
   <struct>
    <member>
     <name>sourceURI</name>
     <value>
      <string>http://source.uri</string>
     </value>
    </member>
    <member>
     <name>targetURI</name>
     <value>
      <string>http://target.uri</string>
     </value>
    </member>
   </struct>
  </value>
 </param>
</params>
</methodCall>
Nun habe ich mir aber mal angeschaut, was Serendipity und WordPress so verschicken:
Serendipity liefert:
<?xml_version => "1.0"?>
<methodCall>
  <methodName>pingback.ping</methodName>
  <params>
    <param>
      <name>sourceURI</name>
      <value><string></string></value>
    </param>
      <name>targetURI</name>
      <value><string>http://target.uri</string></value>
    </param>
  </params>
</methodCall>
Es lässt also insbesondere die sourceURI leer und nutzt nicht die Struct-Struktur.
WordPress hingegen liefert:
<?xml version="1.0"?>
<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param><value><string>http://source.uri</string></value></param>
<param><value><string>http://target.uri</string></value></param>
</params></methodCall>
Es lässt also die Namen der Parameter weg.
Beides passt aber überhaupt nicht zu dem, was die PHP-Funktion generiert, wenn man mehr als einen
Parameter übergibt. Auch passt es nicht zu dem, was ich auf http://www.xmlrpc.com/spec gefunden habe.
Ich habe mich mit diesem Problem mal an das USENET gewandt, in der Hoffnung hier etwas Erleuchtung zu erfahren.

Zur zweiten Ausgabe des CC Zwei

Die zweite echte Ausgabe des Computer Club Zwei hat vier Themen:
Im ersten Teil dreht es sich um Festplatten. Das ist der Bereich, in dem mit Zahlen und Extrema nicht gegeizt wird. So kann ich einfach nicht glauben, dass bei einer Festplatte auf der Dicke eines Blattes Papier zwischen 500 und 600 Spuren untergebracht werden — ein Wahnsinn.
Der zweite Teil befasst sich mit TMC plus. Hier werden zukünftig Verkehrsdaten aktueller angeboten, als dies mit TMC möglich ist. Diese Daten werden automatisch bundesweit erfasst und müssen nicht mehr durch Menschenhand erfasst werden. Interessant.
Der dritte Teil befasst sich mit Dual-Core und Multi-Core Prozessoren und brachte mir nicht viel Neues.
Zum Schluss stellt Wolfgang Back noch sein Programm zum Lösen von Sudokus auf seinem PDA vor.
Des weitere weisen die beiden Wolfgangs noch auf die Homepage des CC Zwei hin: http://www.cc-zwei.de

Blogleser lieben Ihr freies Wochenende

Betrachtet man sich die untenstehende Smokeping-Grafik
, in der die Antwortzeiten eines HTTP-Pings dargestellt sind, sieht man dass an Wochenende praktisch keine Lastspitzen auftreten. Anders sieht dies an Wochentagen aus. Hier treten tagsüber(!) Lastspitzen auf, die auch mit zum Teil deutlichen Paketverlusten einhergehen. Dieses Profil gleicht eher dem eines B2B-Angebotes denn dem eines Consumer-Angebotes. Dieses Ergebnis hätte ich so nicht erwartet.
Betrachtet man aber die Zugriffe auf dieses Blog, wie sie sich über die Woche verteilen, so bestätigt dies die obigen Werte:

Vielleicht liegt’s daran, dass zu anderen Zeiten die eBay-Auktionen auslaufen 😉

Computer Club 2

Nun habe ich mir das 28MB große MP3-File angehört. Es geht im wesentlichen um vier Themen:

  • Im ersten handelt es sich die Entwicklung der Bandbreite, die einem Privatanwender zu Hause zur Verfügung stehen wird. Es ist so ganz interessant; es wird ein wenig mit Zahlen jongliert. Aber nicht sonderlich spektakulär.
  • Bei Punkt zwei geht es um VPNs. Hier wird ein "Sicherheitseperte" von Symantec hinzugeschaltet, der eigentlich seine Produkte verkaufen will. Tenor: Was nix kostet, taugt auch nichts.
  • Punkt drei behandelt SmartPhones sowie UMTS und die Kosten. Da ich da selbst nicht so auf dem Laufenden bin, fand ich es ganz interessant.
  • Zu guter Letzt dreht es sich noch ein wenig um die Neuerungen des Firefox 2.0, der ja bald kommen soll.

Fazit: Es gab gestern (mal wieder) nichts Gescheites im Fernsehen, auf der Terrasse konnte man es abends gut aushalten. Da war die Unterhaltung durch den Computer Club Zwei per MP3-Player recht nett. Die Null-Nummer macht neugierig auf die nächste Augsabe.