• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Spamschutz

Puccini

Neues Mitglied
Hi,

ich weis, das thema wurde schon oft diskutiert, aber immer wieder gab es den einen oder anderen "hacken" an den lösungen.

Ich suche eine Nutzerfreundliche Lösung für mein einfaches Kontaktformular. D.h. ich will auf Captchas, Rechenformel oder Fragenbeantwortungen verzichten, und trotzdem sicher vor Spam sein!

Wie stelle ich das am besten an?

Bisher gefundene Lösungen:
dynamisch erzeugte Feldnamen (abhängig vom Datum etc)
paritätscheck der übermittelnten Daten

Wie wäre es mit einer zeitsperre der SessionID? Oder hilft das nix? nutzt so ein spambot immer wieder eine neue session?

Was findet ihr ist eine gute lösung des Probs?

Danke schonmal ;)
 
Also, es gibt nur EINE ganz sichere Möglichkeit, und diese ist ein Captcha.
Ansonsten könnte man noch theorethisch nach dem Absenden die IP sperren.
Ich bin mir aber nicht sicher ob das legal ist, da man bei dieser Art des Spamschutzes ja die IP-Adresse speichern muss. Ich würde im Zweifelsfall einfach die IP mit der Md5-Methode verschlüsseln und so speichern, und danach noch eine Abfrage einbauen, welche überprüft ob die momentane IP einer gespeicherten entspricht!

MfG. Maximilian
 
Ich suche eine Nutzerfreundliche Lösung für mein einfaches Kontaktformular. D.h. ich will auf Captchas, Rechenformel oder Fragenbeantwortungen verzichten, und trotzdem sicher vor Spam sein!

LodMatu schrieb:
Also, es gibt nur EINE ganz sichere Möglichkeit, und diese ist ein Captcha.

Ich für meinen Teil würde dir auch empfehlen ein Captcha-Script zu benutzen. ISt einfach, schnell und unkompleziert.

Mfg
 
Spam schutz läst sich auch gut ohne captcha realisieren. Erstell dir input felder die du per css versteckst. Die bots sind so ausgelegt das sie immer alles ausfüllen wollen wird das feld dann auch ausgefüllt blockieren. Verwende einen häufigen namen für dieses input feld wie name oder mail unsw.

Weiters Zeit prüfen wie lang gebraucht wurde bis es ausgefüllt wurde liegt es unter 3 Sekunden dann spam also blockieren.

Da gibst so viele möglichkeiten wie man sich erfolgreich gegen spam schützen kann es muß nicht immer gleich ein nicht user freundlicher captcha sein.Solche prüfungen kann man schnell selber einbauen und man hat dann eine ruhe von dem Spam.

Mfg Splasch
 
Das mit dem verstecken is ne super Idee!
Auch das mit der zeit ;) ich glaub ein spambot wird nicht mal 1sek für so eine Ausfüllung brauchen :razz:

Ich werd beides einbauen!
Danke für den tollen Tip.
 
Ansonsten könnte man noch theorethisch nach dem Absenden die IP sperren.
Wieso wird eigentlich immer wieder eine IP#-Sperre erwähnt? Warum denkt niemand daran, dass eine IP einen COMPUTER und nicht einen MENSCHEN identifiziert!?
Eine IP-Sperre sperrt einen ganzen Computer, also alle Benutzer, die von da kommen! Das ist nicht Sinn eines Spam-Schutzes und sicher alles andere als nutzerfreundlich.
 
Ich möchte mal einen Überblick darüber geben, welche Schutzmaßnahmen mein Gästebuch enthält:
- Auswahl zw. Captcha /Rechenaufgabe
- Zeitmessung
- verstecktes Formularfeld

Das konnten Spambots bisher alles problemlos knacken. Ich war an einem gewissen Punkt mehr als verzweifelt, da ich nicht unbedingt eines dieser rieseklotzigen neuartigen Captchas einbinden wollte, bei denen Worte aus Büchern einkopiert wurden.

Der einzige Schutz, der bei mir wirklich hilft, ist eine Sicherheitsfrage (Welche Farbe hat das Meer? In welcher jahreszeit fällt Schnee? etc).

Die Aussage, ein Captcha sei die einzige ganz sichere Möglichkeit gegen Spam, ist falsch.

MfG Icy
 
Also von IP-Sperre würde ich auch abraten, manche User surfen über Proxy-Server von Firmen, da würdest du mit einer IP ne ganze Firma aussperren, das wär ziemlich doof. (Ist mir übrigens schon mal Passiert, bin nur durch Zufall drauf gekommen :-)

Als einfachste Lösungen haben sich bei mir herausgestellt:

  • auswahlfeld bei einem Namen: "Bitte wählen / Herr / Frau" oder geht auch "Bitte wählen / mann / frau" als Geschlecht. Wichtig ist, dem ersten Auswahlfeld auch einen Wert zu geben also nicht "" oder "0". Viele Spambots nehmen den ersten Eintrag und da musst du nur überpfüfen ob mann oder frau ausgewählt wurde.
  • Ein ganz einfacher Captcha: "Bitte schreiben Sie A in das Feld:". Dadurch habe ich bisher alle Spambots draußen gehalten
  • E-Mail Adressen auf Gültigkeit Prüfen
Das mit dem Verstecken ist durchaus auch denkbar, das hab ich noch nicht versucht.
 
Also von IP-Sperre würde ich auch abraten, manche User surfen über Proxy-Server von Firmen, da würdest du mit einer IP ne ganze Firma aussperren, das wär ziemlich doof. (Ist mir übrigens schon mal Passiert, bin nur durch Zufall drauf gekommen :-)
Da nur durch Zufall drauf zu kommen, zeigt, wie sehr sich Windoof in die Hirne der Leute eingegraben hat.

Nimm Unix. Auf einem Rechner mit einer IP# können u.U. hunderte von Leuten arbeiten. Dazu brauchst Du nichtmal einen Proxy!
 
Ich möchte mal einen Überblick darüber geben, welche Schutzmaßnahmen mein Gästebuch enthält:
- Auswahl zw. Captcha /Rechenaufgabe
- Zeitmessung
- verstecktes Formularfeld

Das konnten Spambots bisher alles problemlos knacken. Ich war an einem gewissen Punkt mehr als verzweifelt, da ich nicht unbedingt eines dieser rieseklotzigen neuartigen Captchas einbinden wollte, bei denen Worte aus Büchern einkopiert wurden.

Der einzige Schutz, der bei mir wirklich hilft, ist eine Sicherheitsfrage (Welche Farbe hat das Meer? In welcher jahreszeit fällt Schnee? etc).

Leute die einen Spam bot programmieren sind auch nicht dum die sehen ja was ihr gemacht habt und schreiben dann wieder dafür gegen massnahmen.

Hier fängst schon an alles was man sich selber einfallen läst wirkt, da es noch nicht bekannt ist. Der 2 wichtige Punkt ist wie man es Umsetzt eine Zeitmessen kann relative einfach aber auch schlecht umgesetzt werden so das der Bot das leicht auslesen kann und manipulieren. Der füllt das Formular unter 1 Sekunde aus und gaukelt aber vor länger gebraucht zu haben. Die meisten machen da ein hidden Feld mit einen Timestamp sowas ist natürlich dann ganz leicht für den Bot zu überlisten. Ihr müßt da schon mit eigenen Techniken und Tricks arbeiten dann funktioniert auch der Schutz wie gewünscht.

Da gibst nun jetzt wieder viele Möglichkeiten wie man so eine Abgesicherte Zeit messung durchführen kann. Dann bleibt den Bot nur mehr über wirklich länger zu warten was aber inefizenz für ein Bot Programm were und meisten auch daher nicht gemacht wird.

Denkt also daran die Zeit Daten vorher selbst zu Manipulieren damit ihr eine fremde Manipulation der Werte erkennen könnt. zb Verschlüsseln oder verschiedene Rechen Operationen mit dem Zeitwert durchführen. Kommt später ein unrealistischer Zeit Stempel raus dann war ein Bot am werk.

Beim verstecken können manche bot die css Anweisung Auslesen und das daran erkennen. Da kommt es eben dann drauf an wie raffiniert ihr es versteckt habt.

Mfg Splasch
 
Zuletzt bearbeitet:
Ist diese Methode sinnvoll:
Code:
//Setzen der SESSION-Variable bei Formularaufruf
$_SESSION['kontaktzeit'] = time();

und die Überprüfung:
Code:
//5 Sek für eine Kontaktanfrage
    if((time()-$_SESSION['kontaktzeit']*1)<5)
        $kontaktmsg = '<span class="warning">Du musst 5 Sekunden warten.</span>';

Oder kann ein Bot einfach das setzen der SESSION-Variable verhindern?

Dann müsste ich ja noch prüfen ob die Variablen überhaupt gesetzt ist, und wenn nicht ebenfalls fehler!
Oder?
 
sessions werden serverseitig gesetzt, ein bot kann das also so einfach nicht verhindern.
allerdings hängt das von deiner php konfiguration ab, ein refresh seitens des bots würde ihm unter umständen eine neue session zuweisen.
 
Wenn es beim Formularaufruf nur um das Festhalten der Zeit geht kann man doch auch einfach eine Datei touchen und dann zur Überprüfung filemtime verwenden, oder nicht? Sollte sicher sein, solange der Bot keine Dateien auf dem Server verändern kann.
 
was aber wieder andere besucher ebenfalls aussperren würde.
man müsste das file einem besucher zuordnen können.

ich mache das bei mir so, dass ich mehrere besucher infos abfrage z.b. ip, session, browserkennung etc.

ich setze z.b. im gästebuch die ip eines besuchers in eine liste. steht eine ip in dieser liste, kann sie 1 stunde nichts eintragen. wer schreibt schon innerhalb einer stunde 2 mal in ein gästebuch.
da ips wechseln können, sessions das selbe, auch die sind für eine zeitspanne gesperrt.
macht man noch captchas und blacklisten etc dann wird das ganze schon relativ sicher.

100% gibt es sowieso nicht
 
Hey,
ich wolte nochmal kurz zum TIMESTAMP zurückkommen.

spalsch meinte ja, dass BOTS das leicht manipulieren können, also ein "hidden"-feld ausgefüllt mit timestamp.

Aber was, wenn ihr dieses textfeld readonly und disabled macht?
dann kann der bot das doch garnicht bearbeiten, da es ja auf readonly steht.

Wäre das nicht eine gute Lösung?

Ich selber hatte bisher keine Probleme mit dieser methode, aber meine Seite ist mit schlappen 300 Visits/month auch nicht unbedingt so gross, dass man da nen Bot hinschicken müsste, denk ich mal ^^ (hoff ich eher ^^)
 
Aber was, wenn ihr dieses textfeld readonly und disabled macht?
dann kann der bot das doch garnicht bearbeiten, da es ja auf readonly steht.

readonly und disabled sind doch Clientseitig. Darauf sind Bots programmiert und lassen sich leicht manipulieren.
Der "User" kann praktisch alles senden was er will. Mit PHP muss man dies richtig auswerten.

Mfg
 
Erstell eine Zufallszahl schreib diese in die Session.Danach erstellst ein hidden feld und weißst dem folgendes zu.

name="time" value="$zufallszahl.time()" nun Haste dort den Timestamp drin inklusive einer Kontroll Zahl

So nun brauchst nur mehr nach abschicken des Formular die 2 Werte prüfen.

Ist die Zufallzahl noch gleich mit der in der Session wenn nein Spam. Weiters prüft wieviel Zeit vergangen ist. Da gibst so viele möglichkeiten wie man das machen kann.

Eine andere Methode ist es einfach die Stellen vom Time zu vertauschen dadurch entsteht eine art codierung den der Bot kann nicht wissen welche stellen du nun umgedreht hast. Oder mach aus dem time Wert Buchstaben so sind maniupulationen immer leicht zu erkennen. Das ist wie ein Password der bot müßte dann schon das Password kennen um den Time richtig zu manipulieren zu können.

Mfg Splasch
 
Ich kenne ein m.E. derzeit noch von Spambots unknackbares Captcha, das Clock Captcha.
Es wird ein Bild mit einer (analog dargestellten) Uhrzeit angezeigt, die der Nutzer dann in ein Feld eintragen muss.
Das kann dann zum Beispiel so aussehen.

Vorteile:
- Die analog angezeigte Uhrzeit kann jeder lesen - funktioniert also sicher
- Bots können dieses Captcha derzeit (soweit ich weiß) noch nicht lösen

Nachteile:
- da relativ unbekannt, kann das Captcha missverstanden werden
- nicht barrierefrei (Captchas sind das sowieso nicht, aber für einfache Captchas gibt es Programme, die diese lösen können)

Clock Captcha Download
 
Was Captchas angeht, wenn man diese benutzen will, funktioniert es gut folgendes zu machen:

Man benutzt ein transparentes gif als Hauptbild. Transparente .gifs machen im IE keine Probleme, sind ja keine .png. Als Hintergrundbild des Bildes setzt man das Captcha-Bild. Man setzt auch im Captcha einen header, dass das Bild nicht gecachet wird.

Was noch sehr gut hilft, falls man auf die Lösung keine Lust hat, ist, das Bild nicht captcha.php zu nennen. Am besten generiert man eine Bilddatei und schreibt diese in eine Bilddatei, sodass der Bot sieht, dass es kein .php oder .asp ist, sondern ein richtiges Bild.

Ich habe seit geraumer Zeit die erste Lösung aktiv und hatte noch nie einen Bot.
Für die, die die erste Lösung nicht verstehen ^^

<p class="c"><img src="transparent.gif" alt="Lädt..." /></p>

.c img {
background-image:url(captcha.php);
width:200px;
height:40px;
}
 
Es wird ein Bild mit einer (analog dargestellten) Uhrzeit angezeigt, die der Nutzer dann in ein Feld eintragen muss.
Ich bin kein Meister für solche Programme, aber das sollte kein Problem sein, das zu knacken. Über die Größe des Ziffernblattes und die Position der Zeiger kann man sich ja die genaue Uhrzeit errechnen.

Die analog angezeigte Uhrzeit kann jeder lesen - funktioniert also sicher
Na, wenn Du Dich da mal nicht zu weit aus dem Fenster lehnst :-)

- nicht barrierefrei (Captchas sind das sowieso nicht, aber für einfache Captchas gibt es Programme, die diese lösen können)
Dass Captchas grundsätzlich nicht barrierefrei sind, ist falsch. Ein Barrierefreies Captcha ist die bekannte Rechenaufgabe. Das ist reiner Text und wird ganz normal vorgelesen und kann problemlos beantwortet werden. Und die ist (noch) sicher, weil die Bots das bisher nicht als Captcha erkennen.
 
Zurück
Oben