Gästebuch Spam verhindern
Funker
- sonstiges
Hallöchen Ihrs!
Mein Problem ist eigentlich ganz simple.
Mein gästebuch wird zugespammt und ich möchte dagegen was einfügen:
Und zwar dieses einmal:
<?php
$eintrag = $_GET["eintrag"]
$punkte = 0;
$punkte = $punkte + 1 * substr_count(strtolower($eintrag), 'viagra');
$punkte = $punkte + 2 * substr_count(strtolower($eintrag), 'phentermine');
$punkte = $punkte + 2 * substr_count(strtolower($eintrag), 'tramadol');
$punkte = $punkte + 3 * substr_count(strtolower($eintrag), '<a href=');
if ($punkte < 5){
//Eintrag verarbeiten
} else {
//Spam-Alarm!
}
?>
in meine Gästebuchfunktionen:
?php
function auslesen_gbuch($gbuchline)
{
global $entry_name,$entry_email,$entry_url,$entry_icq,$entry_text,$entry_date,$entry_time,$antwort;
global $trenner1,$trenner2,$zwischentrenner1,$zwischentrenner2;
$temp_entry=explode($trenner1,$gbuchline);
$temp_name=explode($zwischentrenner1,$temp_entry[0]);
$entry_name=$temp_name[1];
$temp_email=explode($zwischentrenner1,$temp_entry[1]);
$entry_email=$temp_email[1];
$temp_url=explode($zwischentrenner1,$temp_entry[2]);
$entry_url=$temp_url[1];
$temp_icq=explode($zwischentrenner1,$temp_entry[3]);
$entry_icq=$temp_icq[1];
$temp_text=explode($zwischentrenner1,$temp_entry[4]);
$entry_text=$temp_text[1];
$temp_date=explode($zwischentrenner1,$temp_entry[5]);
$entry_date=$temp_date[1];
$temp_time=explode($zwischentrenner1,$temp_entry[6]);
$entry_time=$temp_time[1];
$temp_antwort=explode($zwischentrenner1,$temp_entry[7]);
if(isset($temp_antwort[1]))
{
$antwort=$temp_antwort[1];
}
else
{
$antwort="";
}
$entry_name=ereg_replace($trenner2,$trenner1,$entry_name);
$entry_name=ereg_replace($zwischentrenner2,$zwischentrenner1,$entry_name);
$entry_email=ereg_replace($trenner2,$trenner1,$entry_email);
$entry_email=ereg_replace($zwischentrenner2,$zwischentrenner1,$entry_email);
$entry_url=ereg_replace($trenner2,$trenner1,$entry_url);
$entry_url=ereg_replace($zwischentrenner2,$zwischentrenner1,$entry_url);
$entry_icq=ereg_replace($trenner2,$trenner1,$entry_icq);
$entry_icq=ereg_replace($zwischentrenner2,$zwischentrenner1,$entry_icq);
$entry_text=ereg_replace($trenner2,$trenner1,$entry_text);
$entry_text=ereg_replace($zwischentrenner2,$zwischentrenner1,$entry_text);
$antwort=ereg_replace($trenner2,$trenner1,$antwort);
$antwort=ereg_replace($zwischentrenner2,$zwischentrenner1,$antwort);
}
?>
Die fehlende Frage dazu!
Wie und wo muss ich den Php-Code einfügen?
Danke im vorraus!
<?php
$eintrag = $_GET["eintrag"]
$punkte = 0;
$punkte = $punkte + 1 * substr_count(strtolower($eintrag), 'viagra');
$punkte = $punkte + 2 * substr_count(strtolower($eintrag), 'phentermine');
$punkte = $punkte + 2 * substr_count(strtolower($eintrag), 'tramadol');
$punkte = $punkte + 3 * substr_count(strtolower($eintrag), '<a href=');if ($punkte < 5){
//Eintrag verarbeiten
} else {
//Spam-Alarm!
}
?>
Dü prüfst ein paar Worte, die dir nicht gefallen, irgendwelche Schimpfwörter und Beleidigungen lässt du aber durch, ebenso Einträge in kyrillischer, japanischer Schrit, die du vielleicht nicht verstehst ...
Ich lasse mir jeden Gästebucheintrag per Mail kommen, bis zur Freigabe wird eine Prüfmeldung angezeigt. In der Mail kann ich freiklicken oder löschen.
Was ich mir noch vorstellen könnte, ist eine Rechenaufgabe, zu der man das Ergebnis eintragen muss. Die komischen Grafiken, in denen man raten muss, ob ein senkrechter Strich nun das grosse I, das kleine l oder die Ziffer 1 sein soll, finde ich vollkommen daneben.
Gruß, Kalle
Mein Problem ist eigentlich ganz simple.
Mein gästebuch wird zugespammt und ich möchte dagegen was einfügen:
Und zwar dieses einmal:
1.April-Code
Glaubst du an irgend eine Effizienz deines Unterfangens?
Lies mal den Artikel, der im Head verlinkt ist der Message. Ich habe mir da mal Gedanken gemacht, weil ich ein CMS mit Gästebuch anzubieten gedenke.
mfg Beat
Es soll so simple sein, das score system reicht völlig aus, um die Spams die ich habe zu unterbinden.
Ahoi,
Es soll so simple sein, das score system reicht völlig aus, um die Spams die ich habe zu unterbinden.
In unserer html-ag hatte ein Schüler mal einen kleinen blog fürs Programmiertesten gebaut. Der war plötzlich mit zig Spams für russische Sexseiten vollgestopft. Jetzt sieht das so aus: http://html-ag.wvs-berlin.de/blog/ M.e. kommen die Bots mit Javascript nicht zurecht. Also änderst du die URL und legst einen Link auf der alten URL mit Javascript.
Dank und Gruß,
Ahoi,
... M.e. kommen die Bots mit Javascript nicht zurecht. Also änderst du die URL und legst einen Link auf der alten URL mit Javascript.
okay, du entscheidest dich dafür, nur User mit aktiviertem Javascript zuzulassen.
Merkwürdig nur, dass auch das *Lesen* schon von Javascript abhängt. Warum?
Die *Pflicht* zu Javascript empfinde ich nicht als elegant.
Ich (bemühe mich) setze Javascript nur für Zusatzfunktionen ein, etwa zum lokalen Neusortieren einer Tabelle und teste meine und andere Seiten des öfteren mit deaktiviertem JS.
Manchmal kann man nicht mal mehr navigieren, sehr schlecht !!!
Kalle
Ahoi,
naja, kommt ja immer drauf an, was man will und wieviel Zeit man investieren möchte etc.pp. Es ist eben eine sehr simple Lösung, die aber zu funktionieren scheint. Und wer Javascript ausgeschaltet hat, weiß auch, wie er es wieder eingeschaltet kriegt. Dafür gibts dann den no-script-Bereich. Wer sich die Mühe machen möchte, für die 0,01% seiner Javascriptausschalter was mit serverseitig zu basteln, dem ist das doch unbenommen.
Dank und Gruß,
Moin,
... Und wer Javascript ausgeschaltet hat, weiß auch, wie er es wieder eingeschaltet kriegt.
Auf Firmen- und Behörden-PCs wird etwas voreingestellt, von dem der User nicht die leiseste Ahnung hat. Schon auf die Frage "Welchen Browser benutzen Sie?" kommt die Gegenfrage: "Browser - was ist das?"
Wir Profis glauben immer, dass alle anderen auch Profis sind. Verdammter Irrtum !!!
Dafür gibts dann den no-script-Bereich.
Jaja, den du aber für dein Beispiel nicht nutzt, schaue diesen Link mal mit Javascript AUS an.
Wer sich die Mühe machen möchte, für die 0,01% seiner Javascriptausschalter was mit serverseitig zu basteln, dem ist das doch unbenommen.
Du weisst, dass ich hier schon mal eine Wette und 100 EUR verloren habe?
Aber ich würde wieder wetten, dass eher 5% Javascript ausgeschaltet haben als 0,01%. Ich setze 20 EUR. Wie können wir das kontrollieren? Über 2,5% habe ich Recht, bis 2,5% du.
LIeben Gruß, Kalle
Ahoi,
mir ist es relativ egal, wieviele das ausgeschaltet haben. Es ist eine Variante, die Vor- und Nachteile hat.
Machst du das mit der IP-Kontroller zB. nicht korrekt, dann sperrst Du genauso weitere Nutzer aus dem IP-Netz aus. Machst Du das mit dem Bestätigungsformular, passiert es, dass Leute das nicht schnallen. Such is life.
Dank und Gruß,
Hallo Kalle_B!
Aber ich würde wieder wetten, dass eher 5% Javascript ausgeschaltet haben als 0,01%. Ich setze 20 EUR. Wie können wir das kontrollieren? Über 2,5% habe ich Recht, bis 2,5% du.
http://old.atomic-eggs.com/cgi-bin/html_log.cgi#a6 -> Erster Absatz unter »die letzten Referer«.
Allerdings werden auch Bot-Besuche gezählt...
Viele Grüße aus Frankfurt/Main,
Patrick
Ahoi,
Hallo Kalle_B!
»» Aber ich würde wieder wetten, dass eher 5% Javascript ausgeschaltet haben als 0,01%. Ich setze 20 EUR. Wie können wir das kontrollieren? Über 2,5% habe ich Recht, bis 2,5% du.
http://old.atomic-eggs.com/cgi-bin/html_log.cgi#a6 -> Erster Absatz unter »die letzten Referer«.
Allerdings werden auch Bot-Besuche gezählt...
Genau (;-). Wie frägst du denn Javascript ab und wieviel Bots gab es?
Dank und Gruß,
Hallo frankx!
»» Allerdings werden auch Bot-Besuche gezählt...
Genau (;-). Wie frägst du denn Javascript ab und wieviel Bots gab es?
Das sind meine alte Stats auf old.atomic-eggs.com. Es werden nur Seiten gezählt, die einen entsprechenden »Counter-Code« enthalten. Im Counter-Code gibt es einmal einen JavaScript- und noch einen noscript-Bereich. Es wird von einem Perl-Skript ein Bild zurückgeliefert, im JavaScript-Block geschieht der Aufruf mittels document.write, im noscript ist das Bild, bzw. der Skript-Aufruf einfach referenziert:
<!--BEGINN COUNTER-CODE COUNTER.CGI-->
<Script Language="JavaScript"> [1]
<!--
document.write('<a href="/cgi-bin/html_log.cgi" target="_blank"><img src="/cgi-bin/counter.cgi?seite=home&ref=',escape(document.referrer),'&auf=',screen.width,'x',screen.height,'&win=',parent.frames.length,'&farb=',screen.colorDepth,'" border=0 align=right alt="Atomic Eggs - Counter-Statistiken"></a>')
//-->
</Script>
<NoScript>
<a href="/cgi-bin/html_log.cgi" target="_blank"><img src="/cgi-bin/counter.cgi?seite=home" alt="Atomic Eggs - Counter-Statistiken"></a>
</NoScript>
<!--ENDE COUNTER-CODE COUNTER.CGI-->
Das Perl-Skript sortiert anhand der übermittelten Werte, ob JavaScript oder nicht.
[1] Ja, die Seiten sind uralt (deswegen old.atomic-eggs.com) und werden nicht mehr gepflegt, Schreibweise und veraltete Attribute ändere ich jetzt auch nicht mehr. Jedenfalls war ich damals ganz stolz auf meinen Counter und Christian (Kruse) erleichtert, als ich ihn fertig hatte, weil ich ihn ständig im Chat genervt hatte mit meinen Perlfragen ;)
Viele Grüße aus Frankfurt/Main,
Patrick
Ómwá!
»» »» Allerdings werden auch Bot-Besuche gezählt...
»» Genau (;-). Wie frägst du denn Javascript ab und wieviel Bots gab es?
Ich frage mich gerade, ob es heutzutage überhaupt noch sinnvoll ist, das Datum »Javascript an/aus« als Boolean zu betrachten – die Einstellungsmöglichkeiten aktueller Browser und Addons wie z.B. NoScript machen das inzwischen etwas komplexer.
Wenn ich beispielsweise auf eine für mich neue Seite surfe, ist JS erstmal aus, Noscript-Bereiche sind prinzipiell an, aber bei Redirects im Noscript-Bereich wird nachgefragt (die führen nämlich oft bloß auf eine Seite, die sagt, daß ohne JS nix geht, und das sehe ich an der Stelle schon selbst). Also würde ich erstmal einen Count für »JS aus« verursachen.
Wenn ich dann JS erlaube, wird die Seite neu geladen, und es gibt noch einen Count für »JS an«. (Wenn das jeder Besucher so machen würde, hättest Du also 50% JS in der Statistik, obwohl tatsächlich jeder den JS-Inhalt ausgeführt hat.) Dann ist JS aber auch nur für diese Domain erlaubt; externe Scripte werden immer noch geblockt. Und auch die ausgeführten Scripte dürfen nicht alles, denn UI-Manipulationen (Statusbar, Kontextmenü, Fenstergröße, …) lasse ich nie zu und Popups nur, wenn es gar nicht anders geht. Das heißt im Gegenzug aber auch wieder nicht, daß ich ohne JS an Inhalte, die mit window.open() ›verlinkt‹ sind, gar nicht rankomme, denn NoScript kann solche OnClick-Handler z.T. in ›normale‹ Links umwandeln.
Ich weiß, daß das jetzt ein relativ extremes Beispiel ist, aber es geht mir ja auch erstmal nur darum, was alles möglich ist. Und um solche Sachen mit NoScript einzustellen, muß man auch gar nicht so furchtbar nerdy sein. ;-)
Es soll auch keine Kritik an Deinem speziellen Statistikscript sein, mehr ein allgemeines Nachdenken über die »Javascript an/aus«-Frage.
Viele Grüße vom Længlich
Hallo Længlich!
Ich frage mich gerade, ob es heutzutage überhaupt noch sinnvoll ist, das Datum »Javascript an/aus« als Boolean zu betrachten – die Einstellungsmöglichkeiten aktueller Browser und Addons wie z.B. NoScript machen das inzwischen etwas komplexer.
Heutzutage sicher nicht. Bedenke, ich diesen Counter 2000 schrieb, und erst 2001 eingesetzt habe ;)
mehr ein allgemeines Nachdenken über die »Javascript an/aus«-Frage.
Klar. Mehr als JavaScript an/aus sagt der Counter nicht. Was die Besucher über die Einstellungen Ihres Browsers verbieten oder zulassen, kann ich nicht erfragen.
Viele Grüße aus Frankfurt/Main,
Patrick
Ahoi,
»» ... M.e. kommen die Bots mit Javascript nicht zurecht. Also änderst du die URL und legst einen Link auf der alten URL mit Javascript.
okay, du entscheidest dich dafür, nur User mit aktiviertem Javascript zuzulassen.
Warum nicht? Ist doch legitim, wenn ich einem Gast zum "Verewigen" eine Möglichkeit _meines_ Ermessens anbiete, zumal das freiwillig ist.
Und wenn ich einen Zettel hinlege, grenze ich doch auch diejenigen aus, die mit dem Stift nicht zurechtkommen oder überhaupt nicht schreiben können.
Hotte
okay, du entscheidest dich dafür, nur User mit aktiviertem Javascript zuzulassen.
Warum nicht? Ist doch legitim, wenn ich einem Gast zum "Verewigen" eine Möglichkeit _meines_ Ermessens anbiete, zumal das freiwillig ist.
Sofern es sich um dein eigenes Hausgästebuch handelt, OK.
Sofern du aber Software für andere schreibst, musst du deine Methoden schon ein bisschen auswählbar gestalten.
Es kommt wirklich auf den Kontext darauf an. Man darf keine Methode rundweg loben oder verdammen.
mfg Beat
[..] Man darf keine Methode rundweg loben oder verdammen.
Das macht doch hier garkeiner.
Hotti ;)
Moin,
»» okay, du entscheidest dich dafür, nur User mit aktiviertem Javascript zuzulassen.
Warum nicht? Ist doch legitim, wenn ich einem Gast zum "Verewigen" eine Möglichkeit _meines_ Ermessens anbiete, zumal das freiwillig ist.
Klar, man kann Hürden aufbauen und verlangen, dass der Gast springt.
Wenn man in so einer Lage ist - Herzlichen Glückwunsch !
Ich kenne eher den Fall, dass um Einträge ins Gästebuch gebettelt wird, weil der Letzte im Dezember 2007 war (jetzt haben wir April 2009).
Und wenn ich einen Zettel hinlege, grenze ich doch auch diejenigen aus, die mit dem Stift nicht zurechtkommen oder überhaupt nicht schreiben können.
Ja. Es ist nur die Frage, wieviele du ausgrenzt. Zum Beispiel den (selten) engagierten Besucher, der gerade keinen Stift dabei hat.
Kalle
hi Kalle,
Ja. Es ist nur die Frage, wieviele du ausgrenzt. Zum Beispiel den (selten) engagierten Besucher, der gerade keinen Stift dabei hat.
2.5% ???
Steht Deine Wette noch ;-)
Ne, mal im Ernst. Ein Gästebuch ist eine feine Sache. Es ist _eine_ Möglichkeit für Besucher, ein Feedback zu hinterlassen.
Wenn mir als Besucher eine solche Möglichkeit nicht gegeben ist weil ich beispielsweise nicht schreiben kann, schaue ich, dass ich anderweitig mein Feedback loswerde. Und wenn das gar überhaupt nicht geht, sprenge ich den Laden in die Luft. Auch eine Art von Feedback.
Hotte
hi Hotte,
2.5% ???
Steht Deine Wette noch ;-)
Na klar, ich biete sogar meine gut besuchte Seite remso.de zum Testen an, weil es mich selbst interessiert.
Ne, mal im Ernst. Ein Gästebuch ist eine feine Sache. Es ist _eine_ Möglichkeit für Besucher, ein Feedback zu hinterlassen.
Wenn mir als Besucher eine solche Möglichkeit nicht gegeben ist weil ich beispielsweise nicht schreiben kann, ...
Wer nicht schreiben kann, kann auch nicht lesen - richtig?
Der tummelt sich eh nicht in Gästebüchern, sondern sucht vielleicht nach Videos. Aber ich glaube, auch da muss man lesen können.
... schaue ich, dass ich anderweitig mein Feedback loswerde. Und wenn das gar überhaupt nicht geht, sprenge ich den Laden in die Luft. Auch eine Art von Feedback.
Du sprichst von den Amok-Läufern? Das ist eine andere Baustelle.
Kalle
hi Hotte,
hi Kalle,
»» 2.5% ???
»» Steht Deine Wette noch ;-)Na klar, ich biete sogar meine gut besuchte Seite remso.de zum Testen an, weil es mich selbst interessiert.
Schwupp, Hotti hat sich eingetragen. Guck mal, ob ich JavaScript anhatte.
»» Ne, mal im Ernst. Ein Gästebuch ist eine feine Sache. Es ist _eine_ Möglichkeit für Besucher, ein Feedback zu hinterlassen.
»» Wenn mir als Besucher eine solche Möglichkeit nicht gegeben ist weil ich beispielsweise nicht schreiben kann, ...
Wer nicht schreiben kann, kann auch nicht lesen - richtig?
Trifft nicht für alle zu. ODER verknüpft ja.
Der tummelt sich eh nicht in Gästebüchern, sondern sucht vielleicht nach Videos. Aber ich glaube, auch da muss man lesen können.
Wer Feedback geben will, findet immer einen Weg.
»» ... schaue ich, dass ich anderweitig mein Feedback loswerde. Und wenn das gar überhaupt nicht geht, sprenge ich den Laden in die Luft. Auch eine Art von Feedback.
Du sprichst von den Amok-Läufern? Das ist eine andere Baustelle.
Ja.
Hotte
Es soll so simple sein, das score system reicht völlig aus, um die Spams die ich habe zu unterbinden.
Du siehst die Reihenfolge falsch.
Spam kommt
Du definierst Worte gemäss Spam
Spam kommt
Du definierst Worte gemäss Spam
Spam kommt
Du definierst Worte gemäss Spam
...
Am Ende hast du dein Gästebuch nicht gegen Spam geschützt, sondern lediglich einen Bericht darüber erstellt, was du für Spamworte hältst.
Widme dich der richtigen Aufgabe.
Verwende Cookies (Kein Submit ohne gültige Cookies)
Erzwinge eine Vorschau, kein Bypass der Vorschau möglich.
Verwende ein Feld, das nicht ausgefüllt werden darf. Teste dieses Feld bei Submit.
Validiere den HTTP Request. Ein Accept Header Feld muss vorhanden sein.
Sperre nach einem akzeptierten Posting die IP/16 Range für einige Stunden.
All diese Einrichtungen sind einmalig zu machen, und bedürfen keiner besonderen Betreuung.
mfg Beat
Verwende Cookies (Kein Submit ohne gültige Cookies)
Erste Idee:
Geil - das ist eine Lösung gegen Spam.
Zweite Idee:
Hoppla, ich selbst habe eingestellt, dass ich Cookies freigeben muss. Ein Cookie wird aber nicht begründet, kann gar nicht erklären, warum es gesetzt werden möchte. Mehrere Werbeeinblendungen pro aufgerufener HTML-Seite wollen Cookies setzen. Alle gleichwertig Scheisse.
Kalle
Verwende Cookies (Kein Submit ohne gültige Cookies)
Erste Idee:
Geil - das ist eine Lösung gegen Spam.
Zweite Idee:
Hoppla, ich selbst habe eingestellt, dass ich Cookies freigeben muss. Ein Cookie wird aber nicht begründet, kann gar nicht erklären, warum es gesetzt werden möchte. Mehrere Werbeeinblendungen pro aufgerufener HTML-Seite wollen Cookies setzen. Alle gleichwertig Scheisse.
Du willst etwas von mir?
Ich will etwas von dir.
Fair Game.
Wer seine Cookie Einstellungen nicht flexibel zu managen weiss, dem ist nicht zu helfen.
Was würde dir denn eine Begründung nützen? Ich rieche dein Misstrauen förmlich.
Ja vielleicht ist da Werbung versteckt, irgendwo, jenseits des Browserhorizontes. Vielleicht sogar Werbung für das eigene Anliegen.
Oh mann vielleicht habe ich die Werbung ganz klug zwischen die Buchstaben versteckt.
Du bist nicht glaubwürdig. bestenfalls spitzfindig.
mfg Beat
Du willst etwas von mir?
Ich will etwas von dir.
Fair Game.
Das liest sich wie gleichberechtigte Partnerschaft - ich (meine Seite) bin Spitze, und ich will nur Spitzen-Besucher, handverlesen.
Ist das die Praxis?
Willst du nur deine drei engsten Freunde in deinem Gästebuch?
Kalle
Du willst etwas von mir?
Ich will etwas von dir.
Fair Game.
Das liest sich wie gleichberechtigte Partnerschaft - ich (meine Seite) bin Spitze, und ich will nur Spitzen-Besucher, handverlesen.
Was bitte ist an Cookies abnorm, zumal solchen, die von der eigenen Domain für die eigene Domain gesetzt wurden?
Ist das die Praxis?
Suche selbst nach statistiken
Willst du nur deine drei engsten Freunde in deinem Gästebuch?
Ach, Woodie Allen[1] kommt ja doch nicht auf die Idee, in ein Gästebuch zu schreiben.
[1]unsterbliches Symbol für alle von Verfolgungswahn und anderen Neurosen geplagten Menschen.
Lass mich kurz fragen. Bist du mit TOR unterwegs? Wenn nicht? Du lebst inkonsequent.
mfg Beat
Lieber Funker,
mein Gästebuch-Script wehrt SPAM sehr zuverlässig ab. Wie ich das erreiche? Mit drei Dingen:
1.) mindestens eine Vorschau ist Pflicht
2.) eine Session (mit oder ohne Cookie ist egal)
3.) "versteckte" Eingabefelder, die nicht verändert werden dürfen
Den Mechanismus habe ich hier im Forum einmal sehr umfangreich diskutiert.
Liebe Grüße,
Felix Riesterer.