Seite 1 von 2
Spam-Abwehr
Verfasst: 29.11.2007, 16:22
von Pheidippides
Mal eine wahrscheinlich anfängerhafte Frage:
Durch Zufall stelle ich fest, dass über ein Formular eventuell schon sehr lange jemand versucht, seinen Erotik-Müll an den Mann zu bringen. (täglich ca. 50 Versuche)
Ich hatte vor Jahren einen Sicherheitscheck eingeführt, bei dem unter anderem eine Variable von der Form zum Senden mit übergeben wird. Beim Senden wird als allererstes gefragt, ob es die Variable gibt. Wenn nicht, erfolgt ein EXIT. Der böse Bube erhält also nur eine weiße Seite.
Jetzt bin ich mir nicht ganz sicher, ob ich hier nicht etwa eine Sicherheitslücke biete?
Verfasst: 29.11.2007, 17:32
von nin
Ja, da existiert ein sogar ziemlich bekanntes Loch.
Wie genau das funktioniert, weiß ich auch nicht.
Hatte sowas mal vor 2-3 Jahren. Liegt am Hoster.
Habe dann den Hoster gewechselt, der eigene CGIs zur Verfügung stellt, dieses CGI umbenannnt und alle IP-Nummern, die nur dieses CGI aufriefen, in der htaccess gesperrt.
Das war sooo schlimm, daß ich zwischen 1000 und 2000 eMails täglich zurück bekam, weil die Empfänger-Adresse nicht stimmte. Letztendlich kam meine Domain auch auf die Spammer-Liste.
Verfasst: 29.11.2007, 17:51
von auftragslinker
wenn du noch die url zum formular und den quelltext offenlegst, kann dir auch jemand sagen, ob du da ein sicherheitsleck hast. das schlimmste ist, wenn der mailempfänger frei gewählt werden kann.
@mod: bitte nach coding verschieben
Verfasst:
von
SEO Consulting bei
ABAKUS Internet Marketing Erfahrung seit 2002
- persönliche Betreuung
- individuelle Beratung
- kompetente Umsetzung
Jetzt anfragen:
0511 / 300325-0.
Verfasst: 29.11.2007, 19:05
von Pheidippides
Das Formular ruft per post mit den Input-Feldern und einer Kontroll-Variablen ( input type="hidden") eine php-Seite auf, die die eingegebenen Daten aus der Form per sendmail verschickt.
Die Kontroll-Variable wird am Anfang der Sende.php ausgewertet, und bewirkt, dass bei Spamm eine völlig leere html-Seite (nur <HTML><HEAD></HEAD><BODY></BODY></HTML>) ausgegeben. Eigentlich sollte das OK sein. Nur, ich habe durch Zufall gesehen, dass täglich ganz gleichmäßig versucht wird, Spam zu verschicken, was offensichltlich nie gelingt. Und da bin ich ins Grübeln gekommen, ob ich vielleicht etwas übersehe.
Verfasst: 29.11.2007, 19:14
von catcat
Was für ein CMS verwendest Du? Oder ist das selbst gecodet?
Verfasst: 29.11.2007, 19:30
von Pheidippides
Eigenprodukt.
Verfasst: 29.11.2007, 20:44
von Slurp
Ich versteh das mal so...
Für was ist das hidden Feld? Leeres feld das nur Spam bots ausfüllen ? Gibt auch schon bots die die Atribute der Tags auslesen und de Hiddens Ignorieren.
Verfasst: 30.11.2007, 05:30
von Grillmeister
Ich liefere in meinem Gästebuch-Spamfilter einen 404er aus, nicht nur eine weiße Seite. Seitdem geht das Spamaufkommen deutlich zurück. Waren mal so 10MB Spam am Tag, jetzt sinds noch etwa 50kb, die täglich im Filter landen.
Verfasst: 30.11.2007, 06:30
von nerd
am einfachsten ist es, den text (mailbody, kommentar zum blog oder was auch immer) via regex auf vorhandensein einer url zu ueberpruefen und dann mit fehler 500 abbrechen - verhindert etwa 99.9% aller spam eintraege.
wenn du urls erlauben moechtest, dann:
- nur "gebrauchliche" domains wie .net, org, com, de, at, ch zulassen oder zumindest .cn und .info aussperren
- keine deeplinks erlauben
- keine subdomains ausser "www" erlauben
- keine domains die mit zahlen beginnen erlauben
Verfasst: 30.11.2007, 07:12
von auftragslinker
einen schritt zurück bitte: meinst du mailspam, der darüber versendet wird, oder spam-einträge??
wichtig ist, dass du nicht per formular übergibst:
<input type="hidden" name="mail_empfaenger" value="
ich@ich.de">
das wäre absolut tötlich! denn dadurch kann ich spammails darüber versenden, soviel ich will. am besten du lässt dein script einfach mal von jemandem checken. ist ziemlich schwierig hier so darüber zu mutmaßen, wenn man die genauen verhältnisse nicht kennt!
Verfasst: 30.11.2007, 08:52
von Pheidippides
Es ist mail-spam mit einem Haufen Erotik-Urls.
Ich prüfe im Formular alle Felder auf Inhalt und Länge, nur im Feld mit der Nachricht lasse ich bewußt die Eingabe einer URL zu. Die URL wird gecheckt gegen &, ?, @.
Es gibt eine Sicherheitsabfrage, die mit einem Zufallsstring (20 Zeichen) verknubbelt wird.
Dieser String wird mit dem "hidden" Input an Sende.php übergeben und dort wieder gegengecheckt. Bei Fehler, siehe oben. Das klappt alles seit Jahren sehr gut.
Wie ich schon erwähnte, frage ich mich, wieso jemand den Spam losläßt, obwohl er sein Ziel nicht erreichen kann. Das wird man doch vorher manuell prüfen?
Verfasst: 30.11.2007, 08:59
von auftragslinker
was heisst mit dem hidden? du weisst schon, dass das trotzdem im quelltext auftaucht, oder? wo setzt du die empfängermailadresse fest?
Verfasst: 30.11.2007, 09:25
von Pheidippides
Die Empfängermailadresse ist codiert in Sende.php, taucht also nirgendwo offen auf.
Klar weiß ich, dass man hidden-Inputs im Quelltext sehen kann. Ich kann mir nicht vorstellen, dass der Prüf-Variablen liegt.
Das ganze läuft stark vereinfacht im Prinzip so ab:
- Es wird ein 20-stellige numerische Zahl $variable per Zufall erzeugt.
- Die 16te Ziffer von $variable gibt die Stelle an, wo sich der Wert $a befindet.
- Die 18te Ziffer gibt die Stelle an, wo sich der Wert $b befindet.
- Mit $a + $b = $c wird eine Sicherheitsabfrage durchgeführt
- $variable, $a, $b und $c werden nach Sende.php übergeben
- In Sende.php wird gecheckt, ob $variable gefüllt ist.
- Es wird gecheckt, ob $a, $b und $c stimmen.
Wie gesagt, stark vereinfacht.
Verfasst: 30.11.2007, 09:36
von auftragslinker
du zeigst die rechnung als bild oder text an? ansonsten hört sich das relativ(!) sicher an. für 90% der spambots sollte das reichen (als bild - leicht "verkrukelt")
Verfasst: 30.11.2007, 11:01
von Pheidippides
Ja, und es bisher keine böse Mail durchgedrungen.