^^
  ARMIX networks ARMIX networks

blog.armix.net

[ ARMIX.net : Blog ]

 
 

Beiträge (RSS) Beiträge (RSS)
Kommentare (RSS) Kommentare (RSS)

How-To: Gästebuch vor Spambots schützen

11. Februar 2010

Immer öfter greifen Spambots auch Blogs und diverse Webseiten an um diese mit Spam zu “verseuchen”. Bisher dachte ich, dass mein Online-Wörterbuch vortaro.info davor recht gut geschützt sei, weil es sich dabei vorwiegend um ein Esperanto-Wörterbuch handelt und ich auch die Feldnamen des Gästebuches in Esperanto geschrieben habe. Das hat bisher auch gereicht. Bis vor ungefähr zwei Wochen immer wieder Spambot-Einträge im Gästebuch landeten. Ein manuelles Löschen der Einträge macht auf die Dauer keinen Spass - ebenso wenig wie eine Moderation der Einträge.

Nun gibt es drei Wege wie man Spambots verhindern kann. Wohl am häufigsten werden CAPTCHA’s eingesetzt. Der Zweite Weg ist es dem Gästebuch-Besucher eine Aufgabe zu stellen, die er lösen muss. Und der Dritte, noch recht selten anzutreffende, Weg ist es, dem Besucher ein paar Bilder zu zeigen und ihn etwas dazu zu fragen. Beispiel zeigt man 6 Bilder mit Tieren an und fordert den Besucher auf auf das Schaf zu klicken.

Mein Weg:

Ich habe mich für den zweiten Weg, die Aufgabe, entschieden. (Captcha’s gegenüber bin ich mittlerweile etwas negativ eingestellt, weil manche Captcha’s das abzuschreibende Wort schon so sehr verfälschen, dass man es selbst kaum noch lesen kann.) Der Besucher muss dabei eine kleine Rechenaufgabe lösen, eine einfache Addition von zwei Zahlen. Allerdings, und das ist wieder etwas Besonderes, muss er das Ergebnis nicht als Zahl angeben, sondern als Wort - und zwar, passend zum Thema der Webseite, in Esperanto. (Selbst jeder Esperanto-Anfänger kennt die Zahlen bis 10.) Im folgenden Screenshot ist die Aufgabe 1 + 4 gegeben. Das Ergebnis dafür lautet also 5, auf Esperanto kvin. Gibt der Besucher einen falschen Wert ein, so erhält er eine entsprechende Fehlermeldung mit der Bitte es erneut zu versuchen. Dabei wird natürlich auch wieder eine neue Aufgabe gestellt:

blog_vortaroantispam

Technischer Aufbau der Lösung:

Bei der Eintragungsseite wird zuerst eine Aufgabe per Zufallswert erstellt. In meinem Fall handelt es sich um einen 4-Zeiler:

<?
$sum1 = rand(0, 4);
$sum2 = rand(0, 5);
$provo = convert_uuencode(rand(10, 99) . $sum1 + $sum2 . rand(10, 99));
$problemo = $sum1 . " + " . $sum2 . " = ";
?>

Wie man sieht werden zuerst zwei Zufallswerte ermittelt. Ich habe das soweit eingeschränkt, dass immer eine Ergebnis mit einer Ziffer entsteht, damit die Eingabe des Wortes nicht zu lange ist. Zeile 3 errechnet das Ergebnis. Dieses wird später im Gästebuch-Fomular eingebettet. Der Server erhält somit also mit der eingegebenen Antwort auch die richtige Lösung. Damit die Soll-Lösung nicht so einfach von einem Spambot gelesen werden kann, werden zuerst davor und dahinter weitere Ziffern angehängt und das  Ganze wird dann UU-kodiert. Der Browser übergibt somit für die Lösung 5 lediglich folgendes:

<input type="hidden" name="provo" value="%-S,U.#0`">

(Durch die per Zufallsgernerator angehängten Werte an die Soll-Lösung sieht dieser Wert bei jedem Durchlauf anders aus, auch wenn 2mal hintereinander das gleiche Ergebnis richtig wäre, sind diese Werte unterschiedlich.)
Beim Absenden des Gästebuch-Formulars wird der numerische Soll-Lösungswert dekodiert und anschließend verglichen ob das eingegebene Wort das Richtige ist. Wenn ja, wird der Eintrag  mit der Funktion awe_storano() gespeichert, wenn nein wird via awe_msgbox() entsprechend eine Fehlermeldung ausgegeben, wie sie im obigen Screenshot zu sehen ist.
Im PHP-Quellcode sieht das Ganze dann so aus:

<?
if($_REQUEST["nomo"] != “” && $_REQUEST["mesagxo"] != “” && $_REQUEST["sumo"] != “” && $_REQUEST["provo"] != “”)
{
$korekta = false;
$provsumo = substr(convert_uudecode($_REQUEST["provo"]), 2, 1);
if($provsumo == “0″) { if($_REQUEST["sumo"] == “nulo”) { $korekta = true; } }
elseif($provsumo == “1″) { if($_REQUEST["sumo"] == “unu”)  { $korekta = true; } }
elseif($provsumo == “2″) { if($_REQUEST["sumo"] == “duo”)  { $korekta = true; } }
elseif($provsumo == “3″) { if($_REQUEST["sumo"] == “tri”)  { $korekta = true; } }
elseif($provsumo == “4″) { if($_REQUEST["sumo"] == “kvar”) { $korekta = true; } }
elseif($provsumo == “5″) { if($_REQUEST["sumo"] == “kvin”) { $korekta = true; } }
elseif($provsumo == “6″) { if($_REQUEST["sumo"] == “ses”)  { $korekta = true; } }
elseif($provsumo == “7″) { if($_REQUEST["sumo"] == “sep”)  { $korekta = true; } }
elseif($provsumo == “8″) { if($_REQUEST["sumo"] == “ok”)   { $korekta = true; } }
elseif($provsumo == “9″) { if($_REQUEST["sumo"] == “naux”) { $korekta = true; } }
if($korekta) { awe_storano($_REQUEST["nomo"], $_REQUEST["adreso"], $_REQUEST["pagxo"], $_REQUEST["mesagxo"]); }
else { awe_msgbox(”err”, 602); }
}
?>

So, ich hoffe dieses kurze How-To war für den Ein oder Anderen eine kleine Inspiration. Auch wenn es nur ganz einfach progammiert ist, so hoffe ich doch, dass der gewünsche Effekt erziehlt wird um Spambots zukünftig nicht mehr ins Gästebuch schreiben lässt….

LotusLive iNotes - E-Mail aus der Wolke

14. Oktober 2009

Seit Anfang Oktober gibt es einen neuen E-Mail-Anbieter neben GMail, Yahoo Mail, GMX und Co. Aber diesmal ist es ein Anbieter von dem man es vermutlich nicht erwartet hätte: IBM bietet mit LotusLive iNotes ab sofort einen E-Mail-Dienst aus der Wolke an.

Wer sich jetzt denkt “Ah, Lotus iNotes, das kenne ich doch.”, der irrt. Denn LotusLive iNotes ist nicht gleich Lotus iNotes. Während letzteres - ohne das “Live” im Namen - der Webmail-Client ist, der zum Lotus Domino Server gehört, ist LotusLive iNotes in keinster Weise mit Domino verwandt sondern stammt aus dem Hause Outblaze. Outblaze betreut bereits zig Millionen Mail-Accounts und hat den entsprechenden Dienstleistungspart an IBM verkauft. So hat IBM ein ausgereiftes und viel erprobtes Produkt im LotusLive-Portfolio welches ich, als Lotus-Anhänger, natürlich sofort testen wollte.

Ein Testzugang ist recht schnell beantragt. Damit kann man 30 Tage lang mit einem Account unter der Domain renovations.mail.lotuslive.com herum spielen. Die Anmeldung erfolgt über eine schlichte Seite. Dahinter verbirgt sich ein aufgeräumtes Webmail mit Kontaktverwaltung und Kalender. Features wie Online-Editoren a la Google Docs gibt es nicht. Speicherplatzmäßig ist LLiN mit nur einem GB (ist aber erweiterbar) schon an der unteren Grenze, wenn man bedenkt, dass Google schon in der kostenlosen Variante über 7 GB bietet und Yahoo sogar mit unbegrenzem Speicherplatz wirbt. Abholen kann man seine E-Mails, alternativ zum Webmail auch via IMAP; Mobile Geräte können auf IMAP IDLE zurück greifen. Spamfilter und Virenschutz sind inklusive. Die Konfigurationsmöglichkeiten im Webinterface sind eher gering aber für den normalen Gebrauch durchaus ausreichend. Die Oberfläche glänzt duch klare Strukturen, AJAX-Technik und Drag&Drop-Funktionen. Einige Funktionen erinnern an GMail und Co. So wird ein kleines Fotos des Absenders angezeigt, wenn man im Posteingang mit der Maus auf dessen Namen steht. Auch der “Weitere Funktionen”-Button kommt einem GMai-User sehr bekannt vor. Der Kalender ist recht minimalistisch. Lediglich Betreff, Zeitpunkt, Dauer, Teilnehmer, Ort und Beschreibung lassen sich eintragen. Um noch einmal den Vergleich mit GMail zu ziehen, wären hier Funktionen wie SMS-Erinnerung usw. sicher eine Bereicherung.

blog_lotusliveinotes02_7201

Alles in allem gefällt das Produkt LotusLive iNotes aber gut. IBM zielt damit vor allem auf Geschäftskunden ab und nicht auf Privatkunden, wie der Großteil der Mitbewerber. Man darf zwar einen ausgereiften, nicht mit Funktionen überhäuften, Dienst erwarten, nicht aber einen Kostenlosen. Denn bei LLiN fallen laufende Kosten an, auch wenn diese sehr gering sind. (Günstiger als die Bezahl-Variante von GMail for Google Apps, soweit ich weiß.) Wem der Dienst - als Privatperson - gefällt, der kann sich als Alternative auch Ovi ansehen. Dieser Dienst von Nokia basiert auf der gleichen Plattfirm wie LLiN; auch hier gibt es “nur” 1 GB Mailspace.

Im Firmenbereich kann IBM sicher mit dem guten Ruf überzeugen. Außerdem gibt es auch genug Firmen, die ihre Mails nicht in die Hände der “Datenkrake Google” legen wollen…

MemoStep6 integriert vortaro.info

1. Juli 2009

Die Lernsoftware MemoStep6, aus der tiroler Softwareschmiede von Manfred Tasser, integriert seit der aktuellen Version mein Online-Wörterbuch vortaro.info.

Markiert man im Programm ein Esperanto-Wort und drückt F11, so wird dieses automatisch mit vortaro.info gesucht & übersetzt.

blog_memostep-vortaro_665

Interessierte können unter http://www.memostep6.com/de/vokabellernprogramm-gratis.aspx eine kostenlose Demoversion vom MemoStep6 Vokabeltrainer downloaden.

Wer braucht schon ein eiFon?

26. Juni 2009

Alle sind verrückt nach diesen Touchscreen-Dingern mit dem Apfel auf der Rückseite, und ich muss zu geben, dass ich Apple auch nicht abgeneigt bin. Im Gegenteil: Ich habe ein MacBook und Musik hör’ ich bevorzugt über meinen iPod. Bis jetzt zumindest. Denn seit heute bereichert ein neues Wunderding meine Technik-Ecke:

blog_nokia5800_450

Das Nokia 5800 mit dem netten Beinamen “Xpress Music” macht seinem Namen alle Ehre. Der Sound ist klasse und auch sonst ist das 5800 nicht von schlechten Eltern. Neben dem Touchscreen sind (natürlich) auch W-Lan und GPS mit an Bord. 8 GB Speicher gibts in Form eine wechselbaren microSD gratis dazu.

(Auf dem obigen Bild hab ich mir gerade ein YouTube-Video angesehen. Klappt wunderbar und dank W-Lan geht’s auch nicht auf die Mobilfunkrechnung. :-) )

Scheidung im sozialen Netzwerk

24. Juni 2009

Soziale Netzwerke wie Facebook, meinVZ & Co. sind ja eigentlich eine tolle Sache. Man kann alte Freunde wieder finden und mit den Leuten in Kontakt bleiben. Auch wenn es einen vor einem Zahnarzttermin schreckt, kann man dies dort verkünden. Aber sollte man nicht irgendwo eine Grenze ziehen, damit es nicht bald so weit kommt:

blog_facebook_720

Nein, natürlich gibt es bei dieser Plattform noch keine “ich habe mich scheiden lassen”-Meldung (glaube ich zumindest). Aber es ist doch tatsächlich schon vor gekommen, dass man dort Sachen erfährt, die man im realen Leben noch nicht mit bekommen hat. (Verlobungen, Hochzeiten und Trennungen zum Beispiel.)

Amazon gibt CloudFront Console frei

24. Juni 2009

Heute hat mich eine E-Mail vom “wahrscheinlich größten Internet-Buchhändler der Welt” erreich:

We’re excited to announce today that we’ve added support for Amazon CloudFront to the AWS Management Console.

…heißt es da in der ersten Zeile. Wie man sich schon denken, kann gehts dabei um CloudFront, das CDN von Amazon Web Services. Da ich selbt auch CloudFront nutze im Content weltweit mit top-speed ausliefern zu können, hat mich diese Mail sehr gefreut. Bisher war ich bei der Administration auf meine eigenen Scripts beschränkt, die via API auf AWS zu griffen, oder nutzte S3Fox. Nun lässt sich die Wolke einfacher administrieren.

blog_awsconsole_720

Danke Amazon :-)

Telefonumstellung Teil 1 - Domains

22. Juni 2009

Seit einigen Wochen plane ich schon die Umstellung meiner Rufnummern. Heute konnte ich den ersten Teil abschließen und die Kontaktdaten bei meinen Domains umstellen. Dort ist nun folgendes zu lesen:

nicreg

Bei den neuen Nummern handelt es sich übrigens um Nummern für “konvergente Dienste“, die auch via ENUM erreichbar sind … von den meisten VoIP-Anbietern aus sogar kostenlos. :-)

Nun folgt noch eine neue Handynummer und die weitere Verteilung der neuen Kontaktdaten.

Negative Wurzelbasis

1. Juni 2009

Heute bringen mich meine Mathe-Übungen wirklich zum Verzweifeln.

Ein Beispiel: Berechne die langfristige Preisuntergrenze für K(x) = 0,1x³ - 1,2x² + 8,2x + 4.

  1. Wie Wikipedia bestätigt, berechnet man die langfristige Preisuntergrenze durch das Nullsetzen der ersten Ableitung von K(x).
  2. Ich leite diese also wie folgt ab: K’(x) = 0,3x² - 2,4x + 8,2
  3. Mit der großen Lösungformel sollte ich so eigentlich die beiden x-Werte erhalten.
    Ich rechne dabei (-b ± sqrt(b²-4*a*c))/(2*a) = (2,4 ± sqrt(2,4²-4*0,3*8,2))/(2*0,3)
    Aber bei meinen Werten erhalte ich unter der Wurzel den negativen Wert -4,08 und somit einen wunderschönen Domain Error.
  4. Ich prüfe die Ableitung mit Wolfram|Alpha und erhalte die Bestätigung, dass ich richtig abgeleitet habe.

So, warum klappt das dann nicht? Wer findet den Fehler?

Newtonsche Tangentenannäherung

22. Mai 2009

Da ich mich momentan sowieso viel mit Mathematik beschäftige, habe ich gestern probiert etwas vom neu erworbenen Wissen gleich praktisch anzuwenden und ein Programm (eigentlich mehr ein kleines Script) geschrieben, das eine mathematische Aufgabe löst.

Jeder von euch wird das Problem kennen, dass man bei einer Funktion dritten Grades die Nullstelle bestimmen muss, als Anhaltspunkte aber nur a, b, c und d gegeben hat? … Ok, vielleicht haben doch nicht alle mit solchen Problemen zu kämpfen. Wem das aber bekannt vor kommt, bei dem geht jetzt vermutlich ein Licht auf und der Begriff “newtonsches Näherungsverfahren” sollte im Kopf ‘rum schwirren.

Ich habe also ein kleines Script geschrieben, welches genau diese Problematik behandelt und versucht mittels newtonschem Näherungsverfahren einen Wert von x für die Funktion f(x) = ax³+bx²+cx+d zu errechnen.

Dieses Script zeigt zuerst die Funktion mit den gegebenen Werten für a, b, c und d an und zeigt einem auch gleich die passenden erste Ableitung für f’(x). Anschließend errechnet das Script innerhalb eines vorgegebenen Intervalls einen geeigneten Startwert für x0. Darauf hin wird mit dem oben erwähnten Näherungsverfahren eine Nullstelle gesucht, was im Quellcode in etwa so aus sieht:

blog_newton

Zum Schluss wird noch geprüft ob der gefundene x-Wert wirklich den y-Wert 0 ergibt.

Die Programmierung hat etwa 2 Stunden gedauert und ist vermutlich nicht 100%ig ausgereift. Das Script ist für den Start via CLI ausgelegt und kann mittels einiger Variablen parametriert werden. So können folgende Variablen angegeben werden:

  • Maximale Anzahl der Suchdurchläufe für x
  • Genauigkeit die zwischen 2 x-Werten erforderlich ist, sodass die vom System als wahrer x-Wert akzeptiert wird
  • Präzisonsrundung für y
  • Startwert (x0)
  • Startwert und Endwert für Aufbau der Wertetabelle zur Findung eines geeigneten Startwerts x0.

Das Script findet momentan einfach eine Nullstelle. Die beiden anderen Nullstellen kann man sich dann selbst recht einfach mit einer Polynomdivision und einer Lösungsformel errechnen.

Ausgabe:

armix@armix1001:~$ php newton_kompakt.php
=====================================================================
Armin’s Tangentenannaeherer
…mittels newtonschem Naeherungsverfahren
Version 1.0                                              2009-05-21
=====================================================================

Funktion    : 1x³ + -3x² + 0x + 1
1. Ableitung: 3x² + -6x + 0

Startwert bestimmen:
x = 2 … y = -3
x = 3 … y = 1
Verwende 2.5 als Startwert x0.

Berechne x1: 0.8
Berechne x2: 0.568181818182
Berechne x3: 0.723738317757
Berechne x4: 0.60701055894
Berechne x5: 0.688435047984
[... weitere Zeilen für die Werte x6 bis x69 ...]
Berechne x70: 0.652703644644
Berechne x71: 0.652703644682
Berechne x72: 0.652703644655 … Nullstelle gefunden!

Pruefe Nullstelle: x = 0.652703644655  ==>  y = 0  (0.278066143267 + -1.27806614324 + 0 + +1)

Für alle Interessierten, die das Script selbst testen möchten, gibt es hier einen Download.

Network-Storage-Appliance bekommt neue FW

21. Mai 2009

Als ich gestern einem Kollegen meine Network-Storage-Appliance gezeigt habe, habe ich zwei Dinge bemerkt: Zum Einen, dass es nun ein Nachfolgemodell gibt, das mehr Features bietet und zum Anderen, dass es für meine NSA auch schon wieder 2 neue Firmwares gibt. Was liegt also näher als ein Upgrade?

So habe ich mich dann hin gesetzt und meine schon etwas betagte FW 2.1 über FW 2.3 auf die aktuelle 3.12 angehoben - und siehe da: Einige der tollen neuen Funktionen des Nachfolgemodells hat so auch meine ältere NSA.

nsaweb_720

So lässt sich nun beispielsweise die CPU-Auslastung via Webinterface in (fast) Echtzeit verfolgen und neue Funktionen wie ein automatischer FTP- und Flickr-Uploader sind ebenfalls dazu kommen. Deshalb an dieser Stelle vielen Dank an Zyxel, die sich da wirklich noch was an tun und scheinbar nicht unbedingt das neue Modell verkaufen wollen sondern auch den bestehenden Kunden immer neue Funktionen anbieten. Respekt! :-)

 
 
 
   
 

hosted by Netmonic