OT - Was tun gegen Spamming?

In diesem Forum finden Diskussionen zu allen für ConPresso 3.x verfügbaren Modulen statt.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Ein nicht zu unterschätzendes Hilfsmittel gegen diese Typen sind ein paar ehrliche Worte, die man einfach dem Formular hinzufügt:

"This page will not be indexed by search engines so don't abuse it for promoting your website (SEO)."

Wenn man das dann auch in der robots.txt verankert, dann sind es nicht nur hohle Sprüche und jeder kann einfach nachschauen. Ich zeige dann auch noch die IP des Besuchers und habe in meinem Gästebuch, das trotz Nichtindizierung durch Google den Pagerank 3 genießt, gar keine Probleme durch diese Spammer.

Wenn Du, Georg, das Gästebuchverzeichnis Deiner robots.txt hinzufügst und dabei noch darauf achtest, daß alle "disallow" auch wirklich 2 "L" beinhalten, dann wird sich das mit der Zeit legen...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 02:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

Ein ganz einfaches "Captcha" ist uebrigends eine Erweiterung des Formulars:

(x) Ich bin ein bloeder Spammer
( ) Ich bin ein netter Kommentar-Schreiber

Damit kommen die automatischen Scripte der Spammer noch nicht wirklich mit klar.

Eine Erweiterung waere z.B., dieses Captcha per Javascript auszublenden und ein Hidden-Feld zu setzen oder sowas - solange die automatischen Programme der Spammer kein Javascript nicht kennen, schicken sie das obige Formular ungeaendert ab.

Ein User sieht es entweder nicht (Javascript ein) oder muss halt umstellen.

Balu
Benutzeravatar
georg
ConPresso-Checker
Beiträge: 164
Registriert: 01.01.1970 02:00
Hat sich bedankt: 5 Mal

Beitrag von georg »

ok, danke für den tipp mit der robots.txt - woher wusstest du es mit den L´s markus? Kann man die datei online sehen? Eigentlich dachte ich dieses file wäre nur für die suchmaschinen was?

gruß
georg
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Warum sollten nur Suchmaschinen die Datei robots.txt sehen?

Eine Datei, deren Namen jedem bekannt ist, die nur an einem bestimmten Ort, nämlich im root, sein darf und die einfach nur aus Text besteht... kann ja nun absolut jeder finden und auch lesen... :wink:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
semf
Modul-Entwickler
Beiträge: 1853
Registriert: 01.01.1970 02:00
Wohnort: Gütersloh-Friedrichsdorf
Hat sich bedankt: 14 Mal
Danksagung erhalten: 40 Mal

Beitrag von semf »

Hier mal eine kleine Anleitung, wie das Gästebuch etwas Spamresistenter wird.
In dem Kundengästebuch hat das zur Reduzierung auf täglich 0 bis 1-2 Spams geführt.

Die Datei post.php editieren und zur Zeile 101 gehen. Zeile 101 und 102 löschen
und durch diesen Code ersetzen:

Code: Alles auswählen

$valSend = $db_gettemplate->v('text_send');

$arrText[] = 'Stopwort 1';
$arrText[] = 'Stopwort 2';
$arrText[] = 'Stopwort 3';
$arrText[] = 'Stopwort 4';

$isBlock = NULL;
foreach($arrText as $key=>$value) {
        $isBlock .= stristr($tmp_message, $value);
}

//Save
if($_POST['cmdPost']==$valSend && !$isBlock) {
Erläuterung:
Das Gästebuch prüft normalerweise nur die Existenz von $_POST['cmdPost'].
Hier kann also alles angegeben werden. In obigen Code muß der Inhalt
von $_POST['cmdPost'] aber dem der Variable $valSend entsprechen.
$valSend ist der Schaötflächentext, der im Modul festgelegt werden kann.

Hinzu kommt eine Array mit Stopwörten. Kommt eines der Stopwörter im
Gästebuchbeitrag vor, wird einfach nicht gespeichert. Das Array kann
einfach durch das Anhängen von

Code: Alles auswählen

$arrText[] = 'Neues Stopwort';
erweitert werden!
Viel Erfolg!

Module ConPresso 4.x
Latest News
Tell-a-friend

Module ConPresso 3.4.x
Index_X
Kontakt
RSS-Feed
Umfrage
Gästebuch
Tell-a-Friend

Modul-Download
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Hallo semf,

Deine Codeergänzung hat mir sehr geholfen: Ich bekam gestern etwa 10.000 (!!) Gästebuch-Spameinträge von unserer Website durchgereicht! Nach Anwendung der Stopp-Worte waren's nur noch 30.

Es wäre ganz große Klasse, wenn Du Dein Gästebuch-Modul dahingehend erweitern könntest, dass die Stoppworte ähnlich den Badwords (oder stattdessen) direkt im Backend gesetzt werden könnten und (2. Wunsch :-)) sich auch für andere Felder anwenden ließen.

Ich weiß, für die 3.x-Version lohnt es sich für Dich vielleicht nicht mehr, aber uns und vielleicht vielen anderen wäre es sehr hilfreich, denn unser gemeinnütziger Verein kann sich zurzeit kein Update auf ConPresso 4.x leisten.

Viele Grüße, Günther
JSchädler
ConPresso-User
Beiträge: 37
Registriert: 03.10.2006 02:28

Zahlen-Captcha will nicht?

Beitrag von JSchädler »

Hallöchen, wahrscheinlich hauptsächlich Semf aber auch alle anderen. :) Von MatthiasV habe ich einen hübschen Link zum Thema "Erstellen von Zahlen-Captchas" bekommen und auch gleich mal ausprobiert. Das Ergebnis ist, dass es nicht so will, wie ich gern wollen würde. :)

Folgendes php-Skript sollte eigentlich das Bildchen erstellen:

Code: Alles auswählen

<?php 
   session_start(); 
   unset($_SESSION['captcha_spam']); 
   $text = rand(1000,10000); //Zufallszahl 

   function encrypt($string, $key) { 
   $result = ''; 
   for($i=0; $i<strlen($string); $i++) { 
      $char = substr($string, $i, 1); 
      $keychar = substr($key, ($i % strlen($key))-1, 1); 
      $char = chr(ord($char)+ord($keychar)); 
      $result.=$char; 
   } 
   return base64_encode($result); 
   } 

   $_SESSION['captcha_spam'] = encrypt($text, "1308fz3dp"); //Key 
   $_SESSION['captcha_spam'] = str_replace("=", "", $_SESSION['captcha_spam']); 

         
   header('Content-type: image/png'); 
   $img = ImageCreateFromPNG('captcha.png'); //Backgroundimage 
   $color = ImageColorAllocate($img, 0, 0, 0); //Farbe 
   $ttf = $_SERVER['Document-Root']."arial.ttf"; //Schriftart 
   $ttfsize = 25; //Schriftgrösse 
   $angle = rand(0,5); 
   $t_x = rand(5,50); 
   $t_y = 35; 
   imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text); 
   imagepng($img); 
   imagedestroy($img); 
?> 
Im Template der Eingabeseite habe ich folgende Tabellenfelder hinzugefügt:

Code: Alles auswählen

<tr>
<td></td>
<td><img src="captcha/captcha.php" border="0" title="Sicherheitscode" style="width:140px;height:40px;"></td>
</tr>
<tr>
<td></td>
<td><input type="text" name="sicherheitscode" size="4"></td>
</tr>
<tr>
<td></td>
<td>(Sicherheitscode bestätigen)</td>
</tr>
Das Ergebnis ist hier zu sehen:

Bild

Das Bild wird entweder nicht korrekt eingefügt (was mir wahrscheinlicher vorkommt, weil auch die Höhe und Breite nicht berücksichtigt werden) oder aber gar nicht erst erstellt.

Ahja, in der post.php ist noch eine if-Schleife dazugekommen die aussieht wie folgt:

Code: Alles auswählen

session_start();
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
   $char = substr($string, $i, 1);
   $keychar = substr($key, ($i % strlen($key))-1, 1);
   $char = chr(ord($char)+ord($keychar));
   $result.=$char;
}
return base64_encode($result);
}
$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "1308fz3dp");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if($sicherheits_eingabe == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']); 
Nun ist die Frage, ob ICH da einen eklatanten Fehler verbrochen habe, oder das Skript oder das Skript in Verbindung mit den Templates oder... äh... ja. Was-auch-immer. :) Ich hoffe, die Infos reichen aus um eine erste Prognose zu wagen. Falls nicht, rück ich gern noch mehr raus. :roll:

So, dann geh ich jetzt mal voller nagender Zweifel ins Bett und freu mich auf jedwede Antwort.

Viele Grüße und vielen Dank
Julian
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 02:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal

Beitrag von Matthias V »

Hallo Julian, willst du das Captcha in eine Conpresso-Seite einbauen?
Dann musst du statt dem manuellen Start der Session überall die _include/common.inc.php includen, damit das richtig funktioniert. So war das jedenfalls bei CPO4, ich weiß nicht, ob die Datei in CPO3.4 genauso heißt

Hast du mal ne URL, damit ich schauen kann, ob das Bild defekt ist, oder warum das Captcha nicht angezeigt wird?

Aber ich habe auch ne weile gebraucht, bis ich das Captcha in Conpresso drinn hatte. In einer Separaten Seite hat es sofort ohne Probleme funktioniert.

Gruß Matthias V
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Du bekommst kein Bild weil
-> http://siambok.de/con/md_gbook/captcha/captcha.php

nur verstehe ich nicht, warum bei Dir die Zeile
$img = ImageCreateFromPNG('captcha.png');
dann doch
captcha.PNG statt captcha.png öffnen will... :?
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
JSchädler
ConPresso-User
Beiträge: 37
Registriert: 03.10.2006 02:28

Beitrag von JSchädler »

Ich hab das mit dem defekten Bild auch noch gemerkt gestern nacht, war dann aber zu faul nochmal zu posten. :roll:
Ich werde mal herumdoktern, danke euch beiden!

Grüßle
Julian
JSchädler
ConPresso-User
Beiträge: 37
Registriert: 03.10.2006 02:28

Beitrag von JSchädler »

Tja, ich komme nicht drauf. Die php erstellt einfach kein Bild, die Fehlermeldung bleibt:
Die Grafik "http://siambok.de/captcha/captcha.php" kann nicht angezeigt werden, weil sie Fehler enthält.
Und das ist der Orginalcode aus MarkusV's Link.
Wie bekomme ich denn raus, welche PHP-Version ich auf dem Server habe, bzw. ob ich die GDlib habe? Ich habs per

Code: Alles auswählen

<?PHP
echo '
  SERVER_SOFTWARE: ' . $SERVER_SOFTWARE . '
';
?>
versucht, weil ich dachte, damit wird die PHP-Version ausgegeben, aber dem war nicht so:
SERVER_SOFTWARE: Apache
Gar nicht mal soo viel Information... Und in meinem Kundenbereich beim Host (Evanzo) krieg ich allenthalben nur zu hören, dass ich natürlich PHP installiert habe - von Versionen kein Ton.

Woran könnte es denn sonst liegen? Ich hab nicht rausgefunden, warum das Skript eine ".PNG" öffnen will statt einer ".png" und deshalb in Gottes Namen das Bildchen umbenannt, so dass es jetzt "captcha.PNG" heißt, aber das war nicht das Problem. Ist PHP da so strikt, dass es einem aus sowas nen Strick dreht?
Ich hab auch die Pfadangaben bei der Suche der Schrift-Datei korrigiert, die vormals blöderweise auf einen relativ leeren Punkt auf dem Server gezeigt haben, aber daran hat's auch nicht gelegen.

Nun sitz ich hier und bin wieder ratlos. :(

Danke fürs Mitgrübeln...

Julian
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Angaben zu Deiner PHP-Version findest Du in
http://siambok.de/con/phpinfo.php

Aber vermutlich hast Du auch (wir hatten das vor ein paar Tagen hier schon mal) ein Problem mit
$_SERVER['Document-Root']
und solltest es durch
/home/httpd/vhosts/siambok.de/httpdocs/con/md_gbook/captcha/
ersetzen.

Dabei solltest Du auch gleich den Pfad zum Bild festklopfen.

Wer oder was gibt denn diese komische Fehlermeldung aus?
Wenn ich
http://siambok.de/captcha/captcha.php
aufrufe, dann lese ich
Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/httpd/vhosts/siambok.de/httpdocs/captcha/captcha.php on line 29
‰PNG IHDRŒ(ÞcõPLTEÁ—DàË¡ÿÿÿ†¼Z?¡IDATxœ]–‹uc! D…ÔŸ4À§ÿÞö ;çlò’ØŽ1š Ä?è<7Ù°½î’k»ëZËø‡9¼¦’ï½fWàÓ²]ìÆW"‡Kd\ÊZ»æ1y)“Ëâ×,‚...
Zuletzt geändert von MarkusR am 03.10.2006 12:51, insgesamt 1-mal geändert.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 02:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal

Beitrag von Matthias V »

JSchädler hat geschrieben:Und das ist der Orginalcode aus MarkusV's Link.
Wie bekomme ich denn raus, welche PHP-Version ich auf dem Server habe, bzw. ob ich die GDlib habe?
Direkt im conpresso-Verzeichnis müsste eine phpinfo.php liegen (wenn das nicht der Fall ist, nimmst du die von CPO 4) und da musst du nur 2 Kommentarstriche entfernen, schon zeigt er dir alles zu deinem PHP an. Dann musst du nur noch nach "GD" suchen, da steht dann auch, ob du png-support hast.

Gruß Matthias V

P.S. ich bin nicht MarkusV, da verwechselst du was.
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

@ Julian:

Schicke doch bitte mal Firefox in Urlaub und benutze den Internet Explorer.
Denn jetzt weiß ich daß Du wegen Firefox nicht weiterkommst, da Dir die Servermeldungen nicht gezeigt werden sondern irgendwelcher Unsinn.
Leider kann man sowas nicht wie beim IE abschalten, daher mußt Du den FF abschalten.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 02:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal

Beitrag von Matthias V »

MarkusR hat geschrieben:@ Julian:

Schicke doch bitte mal Firefox in Urlaub und benutze den Internet Explorer.
Man kann aber auch im Firefox weiterarbeiten und wenn irgend etwas nicht geht, kann man mit der Erweiterung IE-Tab sich einen IE in ein Firefox-Tab holen.
Da nutzt man die Vorteile von beiden Browsern.
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung