Stoppt-den-Spam.info Foren-Übersicht
RegistrierenSuchenFAQMitgliederlisteBenutzergruppenLogin
Ziffern und Buchstaben ....
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Stoppt-den-Spam.info Foren-Übersicht -> Feedback
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Feuergold



Anmeldedatum: 09.03.2007
Beiträge: 7

BeitragVerfasst am: 09.03.2007, 16:48    Titel: Ziffern und Buchstaben .... Antworten mit Zitat

Ahoi,

ich wollte mal anfragen, was ich ändern muß, um erstens mehr als generell sichtbare 5 Ziffern zu bekommen (auf 6 konnte ich erhöhen durch anfügen von Nullen, aber meist sind nur 5 zu sehen) und was man machen muß, um Buchstaben mit reinnehmen zu können.
Soweit mir bekannt ist, gibt es immer mehr Bots, die eine gewisse Anzahl an Ziffernkombinationen ausprobieren können und dann doch wieder alles zuspammen.
Sollte man mir das falsch zugetragen haben, lasse ich mich auch gerne eines besseren belehren, aber die Kombination Buchstaben/Zahlen würde mich trotzdem interessieren.

Achja, und was hat es mit diesem "Key" auf sich, den man im Script ändern kann/soll? Wie änder ich den, gibt es da feste Keys, oder mache ich das frei Schnauze? Wie kommt so ein Key zustande?
Das wäre für das Tutorial interessant, denn damit kann man als Anfänger nichts anfangen, daß man das ändern kann/soll, denn wie soll man das machen, wenn man das nicht kennt?

Ansonsten Danke für das Tutorial, bis auf die Sache mit den Keys bin ich gut damit klargekommen. Ein bissel rumprobieren im Test-GB, das ich für sowas habe, und nach kurzer Zeit klappte es. Ist das erste Captcha, mit dem ich wirklich etwas anfangen konnte!

Gruß Feuergold Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
frameguard



Anmeldedatum: 05.03.2007
Beiträge: 117
Wohnort: Wien

BeitragVerfasst am: 11.03.2007, 22:46    Titel: Antworten mit Zitat

Hallo Feuergold,

den Key änderst, wie Du so richtig bemerkt hast, einfach frei Schnauze. Eine beliebige Buchstaben-/Ziffernkombination.

Wichtig ist nur, daß der Key dann im Captcha-Script und in der Überprüfung des CAPTCHA-Codes identisch sein müssen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
frameguard



Anmeldedatum: 05.03.2007
Beiträge: 117
Wohnort: Wien

BeitragVerfasst am: 12.03.2007, 12:56    Titel: Antworten mit Zitat

Zu Deiner anderen Frage (hab ein bißchen darüber geschlafen):

Im captcha.php gibt es ziemlich am Anfang die Zeile:
Code:
$text = rand(1000,10000); //Zufallszahl


Die erzeugt eine Zufallszahl zwischen 1000 und 10000, mit der die $text-Variable dann belegt wird.

Wenn Du da stattdessen schreibst:

Code:
function randomString($len) {
 srand(date("s"));
 $possible="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
 $str="";
 while(strlen($str)<$len) {
  $str.=substr($possible,(rand()%(strlen($possible))),1);
 }
 return($str);
}

$text=randomString(5);


ergibt das ein 5stelliges Buchstaben-/Zahlen-Kombi-CAPTCHA.

Der Funktion randomString(); kannst im Prinzip jede Zahl als Anzahl der gewünschten Stellen übergeben, aber bei mehr als 5 Stellen könnte ich mir Probleme mit der Darstellung vorstellen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
frameguard



Anmeldedatum: 05.03.2007
Beiträge: 117
Wohnort: Wien

BeitragVerfasst am: 12.03.2007, 19:51    Titel: Antworten mit Zitat

Ich hab daraus grad was weitergebastelt, was vielleicht den einen oder anderen hier interessiert.

Mit der obigen Funktion kann man sich nämlich auch den Key zufällig generieren lassen (was noch mehr Sicherheit bedeutet):

In der captcha.php sähe das dann etwa so aus:

Code:
   function randomString($len) {
      srand(date("s"));
      $possible="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
      $str="";
      while(strlen($str)<$len) {
        $str.=substr($possible,(rand()%(strlen($possible))),1);
      }
   return($str);
   }

$text=randomString(5);
$randkey=randomString(12);
$keyfile="key.txt";
$handle= fopen($keyfile,"w");
fwrite($handle,$randkey);
fclose($handle);


Der Script schreibt den zufällig generierten Key in eine key.txt (dazu müßt ihr eine leere key.txt-Datei erzeugen, sie ins captcha-Verzeichnis hochladen und mit chmod die entsprechenden Schreibrechte für sie vergeben).

Natürlich ändern wir dann auch die Zeile

$_SESSION['captcha_spam'] = encrypt($text, "8h384ls94"); //Key

in

$_SESSION['captcha_spam'] = encrypt($text, $randkey); // mit zufälligem Key

Die key.txt müssen wir dann im verarbeitenden Script auslesen, um den Key verwenden zu können:

Code:
$keyfile="CAPTCHA/key.txt";
$handle=fopen($keyfile,"r");
$randkey = fread($handle, filesize ($keyfile));
fclose($handle);


Achtung: Pfadangaben sind auf vielen Servern case-sensitive, wenn die key.txt bei euch also in einem Verzeichnis "captcha" liegt, müßt ihr die Pfadangabe im obigen Codefragment ändern!

Die Zeile

$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "8h384ls94");

müssen wir dann natürlich auch abändern in:

$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], $randkey);

- und voilá, schon arbeiten wir mit einem jedesmal neu zufällig generierten Key. Wink

Wenn's wer ausprobieren möchte: ich habe auf meiner Homepage ein "Test-Gästebuch", in dem ich herumspiele, bevor ich etwaige Änderungen ins eigentliche GB übernehme. Wink http://www.frameguard.at.tt/gb_test/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Feuergold



Anmeldedatum: 09.03.2007
Beiträge: 7

BeitragVerfasst am: 12.03.2007, 21:24    Titel: Antworten mit Zitat

Ahoi frameguard,

wow, das sind mal viele Antworten, Danke!
Mal schauen, wie ich das alles verwende und einbaue, heute Abend habe ich nicht mehr den Kopf dazu, aber in den nächsten Tagen bestimmt.

Die Darstellung mit 6 Zeichen funktioniert nicht immer, das habe ich schon mit 6 Zahlen ausprobiert. Die letzte Ziffer ist immermal entweder gar nicht oder nur zum Teil lesbar.
Von daher müßten es dann wohl höchstens 5 Zeichen sein, oder aber man ändert die Größe vom image, damit 6 Zeichen problemlos dargestellt werden können.

Die Mischung aus Ziffern und Buchstaben finde ich nochmal 'nen bissel sicherer als nur Zahlen. Deswegen werde ich das die nächsten Tage mal ausprobieren.
Ich berichte dann, sobald ich etwas zu vermelden habe *g*

Nochmals Danke,

Gruß Feuergold Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
frameguard



Anmeldedatum: 05.03.2007
Beiträge: 117
Wohnort: Wien

BeitragVerfasst am: 12.03.2007, 21:43    Titel: Antworten mit Zitat

Ich mußte, da ich eine andere Schriftart als Arial verwende, da auch basteln - es genügt, wenn Du in der Zeile
$t_x = rand(5,50);
in der captcha.php den zweiten Wert änderst (ich hab da zB $t_x = rand(5,30); stehen).
Die Funktion rand() ist nämlich folgendermaßen definiert:
rand(minimum, maximum)
An der Bildgröße etc. brauchst also eigentlich nix drehen. Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Feuergold



Anmeldedatum: 09.03.2007
Beiträge: 7

BeitragVerfasst am: 13.03.2007, 19:14    Titel: Antworten mit Zitat

Klasse Tip, probiere ich doch direkt mal aus, Danke! Wink

*ausprobiert habe*, habe allerdings nur Großbuchstaben und Ziffern genommen (ist sonst evtl. zu schwer zu unterscheiden bei manchen Buchstaben) und die rand-Zahl noch auf (5,15) geändert, damit 6 Zeichen reinpassen, klappt jetzt, Danke Wink

Was mir noch einfällt:
Im PHP-Magazin 2/07 ist das Buch "No Spam!" als PDF auf DVD dabei.
Zum Verhindern von Spam im Vorfeld sind einige gute Ratschläge drin, aber ich bin erst auf Seite 40 mit lesen, bis zum Ende sind's noch gut 100 Seiten, auf denen auch einige Scripte zu finden sind.
Falls jemand daran Interesse hat, einfach das PHP-Magazin holen *g*.
Wie gut das ganze ist, kann ich nicht sagen, bin wie gesagt noch nicht durch, aber da setzt eh jeder für sich eigene Maßstäbe, hat andere Interessen, was wichtig ist.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
frameguard



Anmeldedatum: 05.03.2007
Beiträge: 117
Wohnort: Wien

BeitragVerfasst am: 13.03.2007, 19:53    Titel: Antworten mit Zitat

Feuergold hat Folgendes geschrieben:
*ausprobiert habe*, habe allerdings nur Großbuchstaben und Ziffern genommen (ist sonst evtl. zu schwer zu unterscheiden bei manchen Buchstaben) und die rand-Zahl noch auf (5,15) geändert, damit 6 Zeichen reinpassen, klappt jetzt, Danke Wink


Was ich mir da auch schon überlegt habe, ist zB O und 0 rauszunehmen - die sind vielleicht doch eher schwer zu unterscheiden (hängt aber auch von der Schriftart ab). Bei Kleinbuchstaben habe ich da weniger Bedenken, die laß ich bei mir sicher drin.

Zum PHP-Magazin: Ich weiß jetzt nicht einmal, ob ich das in Österreich überhaupt krieg (wahrscheinlich schon). Wink Aber danke auf jeden Fall für den Tip!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Feuergold



Anmeldedatum: 09.03.2007
Beiträge: 7

BeitragVerfasst am: 13.03.2007, 19:59    Titel: Antworten mit Zitat

Hm, steht zumindest 'nen Preis für Ösiland auf dem Cover vom PHP-magazin Wink

Bei den Buchstaben habe ich vor allem an das große i und das kleine L gedacht, die doch meistens verdammt ähnlich ausschauen und gerade bei solchen Bildern drunter schwer zu erkennen sind. 0 und O ist bei Arial eigentlich ganz gut zu unterscheiden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
frameguard



Anmeldedatum: 05.03.2007
Beiträge: 117
Wohnort: Wien

BeitragVerfasst am: 13.03.2007, 20:06    Titel: Antworten mit Zitat

Naja, wie gesagt, ich verwend nicht Arial. *g* Ich verwende eine Schriftart, die sich "X-Files" nennt und etwas schwieriger zu lesen ist (auch ganz gut gegen Spambots!) - wie gut oder schlecht man bei der 1, l und I unterscheiden kann, hab ich noch gar nicht nachgeschaut. Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Feuergold



Anmeldedatum: 09.03.2007
Beiträge: 7

BeitragVerfasst am: 13.03.2007, 20:08    Titel: Antworten mit Zitat

Geht auch nicht, da ich das bisher nur in meinem Test-GB ausprobiert habe, in das andere normale implementiere ich das die nächsten Tage, immer eines nach dem anderen. Dann aber gebe ich Dir gerne die URL, außer, Du probierst mal meinen Namen aus *Wink mit 'ner ganzen Palette voller Zaunpfähle geb*ggg*
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
frameguard



Anmeldedatum: 05.03.2007
Beiträge: 117
Wohnort: Wien

BeitragVerfasst am: 13.03.2007, 20:54    Titel: Antworten mit Zitat

Also auf Dein fertiges Gästebuch bin ich dann schon gespannt. Wink (im derzeitigen hab ich mich grad verewigt)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Feuergold



Anmeldedatum: 09.03.2007
Beiträge: 7

BeitragVerfasst am: 13.03.2007, 21:15    Titel: Antworten mit Zitat

Danke für den Eintrag, habe das gerade per Mail bekommen Wink

Das Script für das GB stand mal in der CT, vor 4 Jahren. Habe das allerdings ein bissel meinen Bedürfnissen angepaßt. Die Mailaddi des Einträgers wird nicht angezeigt, die bekomme ich nur in der Mail zu lesen, bzw. sie steht in der DB. Dann noch die typischen PHP-Spielereien mit Browser, System und Ip *g*
Auch der Versand einer Mail mit dem Eintrag an den Betreiber des GBs war nicht vorgesehen, aber wenn man keine Ahnung von PHP, dafür aber viele Wünsche hat, dann bastelt man halt so lange rum, bis es irgendwie klappt *g*
Mein nächstes Ziel ist eine "Dank-Mail" für den Eintrag an die Mailaddi, die der Einträger angibt. Und halt das Captcha mit den 6 Zeichen, aber das Captcha wird schnell gehen, wogegen das andere wohl minimale Ewigkeiten länger dauert *g*. Ebenso möchte ich mir gerne ein "Admintool" basteln, mit dem ich die Einträge, die man sehen können soll, freigeben kann, ohne in die DB reinzugehen, wie ich es derzeit immer mache, um die Spameinträge zu löschen. Das soll alles über eine spezielle Adminoberfläche gehen ....
Ist noch viel zu tun, warten wir es ab *g*
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
frameguard



Anmeldedatum: 05.03.2007
Beiträge: 117
Wohnort: Wien

BeitragVerfasst am: 13.03.2007, 21:52    Titel: Antworten mit Zitat

Also ein paar Ideen hätte ich da schon dazu...

mein Gästebuch hab ich ja auch so adaptiert, daß es ein Mail verschickt.
Allerdings logge ich keine IP, Browserinfo oder Systeminfo. IP wäre vielleicht eine gute Idee, muß ich drüber nachdenken.

Die E-Mail wird bei mir angezeigt, aber:
$absmail = $from;
$from = str_replace('@', '(at)', $from);

Das heißt, die Mailadresse wird erst einmal für das Dankesmail (das bei mir einfach als BCc an mich geht) in eine andere Variable ($absmail) kopiert und dann ersetze ich einfahc in der ins GB geschriebenen $from das @ durch (at). So steht dann im Gästebuch (am Beispiel meiner Mailaddy): admin(at)frameguard.at.tt, ohne mailto-Link natürlich, statt mit dem @. Das macht Spambots, die nach Mailadressen suchen, das Leben durchaus schwer, auch wenn's nicht die optimale Lösung ist (das sind mittlerweile nicht einmal mehr Bilder statt Klartext).

Du willst in Deiner Mail mehr Infos haben als in der, die an die User geht? Sollte kein Problem sein.
Ich würde das so angehen:
Zuerst definiere ich mir eine Message für den Admin, und dann eine für denjenigen, der sich ins GB eingetragen hat.
Sagen wir einmal, die heißen $messageAdmin und $messageUser.
Und dann führe ich einfach 2x die Funktion mail(); aus:

mail($Adminmail,$subject,$messageAdmin,$header);
mail($Usermail,$subject,$messageUser,$header);
(wobei der Parameter $header optional ist, der enthält so Sachen wie BCc:, Reply-To: etc., vgl. http://www.phpcenter.de/de-html-manual/function.mail.html)

Schwupps, erledigt. Wink

Die Admin-Oberfläche... naja. *g* Da stehe ich vor dem selben Problem, weil die Original-Oberfläche der Seite, von der ich das Script habe, schlichtweg nicht korrekt funktioniert (sie kann nur die 1. 5 Einträge verwalten, na SUPER).

Aber das geht jetzt ein bißchen off-topic - am besten unterhalten wir uns darüber entweder per Mail oder PN weiter, sonst haut uns Rob aus dem Forum... Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Feuergold



Anmeldedatum: 09.03.2007
Beiträge: 7

BeitragVerfasst am: 14.03.2007, 10:28    Titel: Antworten mit Zitat

Na dann besser per Mail, Kontaktformular hast Du ja vielleicht schon auf meiner Page entdeckt *g*
Ansonsten sage ich nur links oben ....
Den Inhalt für die Mails unterschiedlich gestalten und an mehrere feste Mailaddis schicken, das habe ich schon gemacht, also an verschiedene vordefinierte Leute, da ich mal ein GB als Kontaktbereich/Forumsersatz für 'ne kleine Gruppe Leute gemacht hatte, da haben die anderen dann 'ne Mail mit der Info, daß ein neuer Eintrag gemacht wurde, bekommen, aber mehr nicht, während ich die anderen Spielereien sowie den Text vom Eintrag bekam.
Aber als Antwort auf eine vom User eingetragene Mailaddi, das habe ich halt noch nicht gemacht, das steht als nächstes mit an. Dafür schaue ich mir die Zeilen von Dir dann nochmal genauer an, Danke Wink

Und den Rest nun wirklich per Mail *ggg*
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Stoppt-den-Spam.info Foren-Übersicht -> Feedback Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
You can attach files in this forum
You can download files in this forum