Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: Formulare

1 view
Skip to first unread message
Message has been deleted

Marian Heddesheimer

unread,
Jul 27, 2005, 4:44:28 AM7/27/05
to
On Wed, 27 Jul 2005 10:32:33 +0200, Basar Alabay wrote:

>Und seitdem bekomme ich täglich Mails in zweistelliger Höhe, die auf die
>neue (!) Adresse kommen, in denen nichts drinsteht. Es heißt dann im
>Header, daß diese Mail womöglich von einem CGI sei.

Es schein so, als dass der Spammer einen Robot (also ein spezielles
Programm) laufen lässt, dass dein Kontatkformular automatisiert
aufruft. Möglicherweise hast du an den Feldern auch etwas geändert, so
dass sein Skript nun nicht mehr funktioniert und daher nur eine leere
Seite abschickt.

Du könntest das Kontaktformular einfach auf eine andere URL packen
(wäre allerdings schlecht, weil vielleicht die Suchmaschinen dein
Formular auch finden sollen).

Alternativ solltest du prüfen, ob alle notwendigen Felder im Formular
ausgefüllt sind und die Mail erst dann absenden, wenn die Felder
korrekt ausgefüllt wurden.

Als Beispiel kannst du dir ja mal ein Formular von meinem
Formular-Generator erstellen lassen. Da siehst du dann, wie so etwas
geht.

http://www.rent-a-tutor.com/tools/

Gruß

Marian

--
Barrierefreie Online-Kurse: HTML, PHP, MySQL, Word, Excel
http://www.lernpilot.de/wbt/

Message has been deleted
Message has been deleted

Gregor Hermens

unread,
Jul 27, 2005, 5:11:53 AM7/27/05
to
Moin,

Basar Alabay wrote:

> So einen Check habe ich ja insofern, als daß in dem Emailfeld ein @ und
> eine Domain sein muß (ich weiß gerade nicht mehr, ob ich letzteres
> primitiv mit einer . Abfrage gemacht habe ;-)). Aber wie soll ich Namen,
> Adressen, etc. prüfen?

Du kannst zumindest überprüfen, ob die angegebene Domain existiert und einen
gültigen MX- oder A-Record hat.

Außerdem ist es bei Kontaktformularen unter Umständen sinnvoll, die Menge
der Mails zu begrenzen, z.B. max. 1 Mail / Minute und Absender-IP. Dadurch
werden sie für automatisiertes Ausfüllen uninteressant(er).

Gruß,
Gregor

Dirk Niemeier

unread,
Jul 27, 2005, 5:20:29 AM7/27/05
to
On Wed, 27 Jul 2005 10:32:33 +0200
ala...@gmx.net (Basar Alabay) wrote:

> Hallo,
>
> ich habe etwas merkwürdiges erlebt.
> Auf meiner Webseite habe ich ein Formular zur Kontaktaufnahme.
> Nach und nach schlug Spam auf die Adresse, die via PHP dort angegeben
> ist, auf. Da die Adresse schon alt ist, dachte ich, aha, ich ändere
> sie einfach mal. Einen Tag nach der Änderung kam ein Wust von
> mekrwürdig automatisierten Mails an, in denen alle Felder mit einem
> Scheiß aufgefüllt wurden, der einer "Mailadresse" entspricht also
> x...@abcd.zz, so wurde der Formularcheck überlistet.


> Und seitdem bekomme ich täglich Mails in zweistelliger Höhe, die auf
> die neue (!) Adresse kommen, in denen nichts drinsteht. Es heißt dann
> im Header, daß diese Mail womöglich von einem CGI sei.

> Ich habe jetzt das Formular außer Betrieb gesetzt.
> Hat jemand eine Ahnung, was das sein kann?
> Und vor allem ... wie kann man ein Formular sicher bauen, so daß so
> etwas nicht passieren kann? Ich dachte, GERADE Formulare seien doch
> sicherer und besser als reine Mailadressen. Da jetzt ein Flash
> hinzupacken, ist doch dämlich, oder?
>
> B. Alabay
> .

Guten Morgen,

ein kurzfristige Lösung wäre es vielleicht, in den Logs zu schauen, ob
diese Mail-Bomben von einer oder mehreren festen IPs stammen und diese
dann von der Seite per robots.txt auszuschließen.

Zu den Ursachen kann ich nichts sagen, aber hat ihr Formular eine
Intervall-Sperre? Es ist sinnvoll, das Versenden von E-Mails über ein
Formular zu begrenzen, indem man z.B. nur eine Mail pro Stunde von
derselben IP gestattet.
Bei einer exzessive Missachtung dieser Sperre könnte man sich selbst
eine E-Mail mit der IP des Übeltäters schicken lassen, aber das ist nur
eine kleine Idee am Rande.

Weiterer Ansatz wäre, das Abschicken einer E-Mail durch einen
Zahlencode bestätigen zu müssen, welcher als verrauschtes Bild
eingebunden wird. Ich habe den Namen für diese Bildchen vergessen, aber
sie kennen das sicherlich.

--
http://blog.antikoerperchen.de

Dirk Niemeier

unread,
Jul 27, 2005, 5:35:07 AM7/27/05
to
On Wed, 27 Jul 2005 11:20:29 +0200
Dirk Niemeier <ant...@t-online.de> wrote:

> Weiterer Ansatz wäre, das Abschicken einer E-Mail durch einen
> Zahlencode bestätigen zu müssen, welcher als verrauschtes Bild
> eingebunden wird. Ich habe den Namen für diese Bildchen vergessen,
> aber sie kennen das sicherlich.

Mir ist der Name dieser Bildchen wieder eingefallen, man nennt sie
"Captchas" [1]. Ich weise aber noch darauf hin, dass Textbrowser
(meist) keine Bilder anzeigen und Screenreader keine Bilder vorlesen
können und das nicht unbedingt der Stein der Weisen ist, was die
Barrierefreiheit angeht.

[1] http://de.wikipedia.org/wiki/Captcha

--
http://blog.antikoerperchen.de

Marian Heddesheimer

unread,
Jul 27, 2005, 6:06:06 AM7/27/05
to
On Wed, 27 Jul 2005 11:06:19 +0200, Basar Alabay wrote:

>Allerdings kommen Deine Umlaute hier natürlich kaputt an, ich weiß
>nicht, ob man die in PHP auch maskieren kann.

womöglich habe ich in meinem Skript noch nicht den korrekten Header
für den Zeichensatz angegeben. Werde ich mal bei Gelegenheit ändern.

Normalerweise packe ich folgendes als vierten Parameter in die mail()
Funktion:

$header = "From:".$items['email']."\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: text/plain; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 8bit\r\n";

Marian Heddesheimer

unread,
Jul 27, 2005, 6:09:50 AM7/27/05
to
On Wed, 27 Jul 2005 11:35:07 +0200, Dirk Niemeier wrote:

>Mir ist der Name dieser Bildchen wieder eingefallen, man nennt sie
>"Captchas" [1]. Ich weise aber noch darauf hin, dass Textbrowser
>(meist) keine Bilder anzeigen und Screenreader keine Bilder vorlesen
>können und das nicht unbedingt der Stein der Weisen ist, was die
>Barrierefreiheit angeht.

sowas ist natürlich nicht barrierefrei. Man kann es allerdings
barrierefrei machen, indem man einen Link "Bild vorlesen" mit einbaut,
bei dem die Zeichen im CAPTCHA vorgelesen werden. Der Text im Bild
muss dann natürlich auf dem Server in eine Sound-Datei per
Text-to-Speech gelesen werden. Diese Sounddatei kann dann über den
Link abgerufen werden.

Ob das allerdings wirklich den Aufwand für eine kleine Homepage lohnt?

Große Firmen machen das allerdings so, damit auch Blinde die Formulare
abschicken können.

Lars Kasper

unread,
Jul 27, 2005, 6:11:14 AM7/27/05
to
Dirk Niemeier schrieb:

(Bitte Zitate sinnvoll kürzen.)

> ein kurzfristige Lösung wäre es vielleicht, in den Logs zu schauen, ob
> diese Mail-Bomben von einer oder mehreren festen IPs stammen und diese
> dann von der Seite per robots.txt auszuschließen.

Eher .htaccess. Spammer werden über einen Eintrag in der robots.txt nur
lachen, sollten sie überhaupt reinschauen.

> Weiterer Ansatz wäre, das Abschicken einer E-Mail durch einen
> Zahlencode bestätigen zu müssen, welcher als verrauschtes Bild
> eingebunden wird.

Bei diesen Scheiß-Captchas brauche zumindest ich immer drei bis fünf
Versuche, bis ich erraten habe, was das in dem Bild gemeinte sein
könnte. Kids, don't try this at home (page).

Hannes Birnbacher

unread,
Jul 27, 2005, 6:24:36 AM7/27/05
to
Antwort an Lars Kasper auf die Nachricht von Wed, 27 Jul 2005
12:11:14 +0200

>
> > Weiterer Ansatz wäre, das Abschicken einer E-Mail durch einen
> > Zahlencode bestätigen zu müssen, welcher als verrauschtes Bild
> > eingebunden wird.
>
> Bei diesen Scheiß-Captchas brauche zumindest ich immer drei bis
> fünf Versuche, bis ich erraten habe, was das in dem Bild
> gemeinte sein könnte. Kids, don't try this at home (page).

Da gibt's aber auch Unterschiede. Eine gut erkennbare
Zeichenkombination als GIF ist ja noch zumutbar. Ein wirklich
kontrastschwaches, verrauschtes oder gar für Rot/Grün oder
Blau-Sehschwache nicht erkennbares Bild, wie das beim "Gästebuch"
für Webspace bei domainfactory drin ist (sonst mein
Lieblings-Webspaceprovider), ist dagegen völlig unbrauchbar und
damit für jede gewerbliche Website schädigend.

--
Fossilienausstellung und mehr
im Brueckenhofmuseum Koenigswinter-Oberdollendorf
(Siebengebirge):
http://www.brueckenhof.de

Dirk Niemeier

unread,
Jul 27, 2005, 6:30:53 AM7/27/05
to
On Wed, 27 Jul 2005 12:09:50 +0200
Marian Heddesheimer <250705....@spamgourmet.com> wrote:

> sowas ist natürlich nicht barrierefrei. Man kann es allerdings
> barrierefrei machen, indem man einen Link "Bild vorlesen" mit einbaut,

> bei dem die Zeichen im CAPTCHA vorgelesen werden. [...]
>
> Gruß
>
> Marian
>

Stimmt, soweit ich weiß benutzt Microsoft eine verrauschte WAV-Datei.
Bislang ist mir das aber noch nicht live begegnet und hielt es daher
für eine Nischenlösung.

Die Lösung mit den Captchas habe ich trotzdem mal erwähnt. Es muss
jeder selbst beurteilen, wie viel Ignoranz er sich gegenüber
Minderheiten erlauben kann.

MfG
Dirk

--
http://blog.antikoerperchen.de

Dirk Niemeier

unread,
Jul 27, 2005, 7:02:11 AM7/27/05
to
On Wed, 27 Jul 2005 12:11:14 +0200
Lars Kasper <ma...@LarsKasper.de> wrote:

> (Bitte Zitate sinnvoll kürzen.)

Man ist halt faul.

> Eher .htaccess. Spammer werden über einen Eintrag in der robots.txt
> nur lachen, sollten sie überhaupt reinschauen.

Okay, guter Punkt. Wo ist die Edit-Funktion? ;-)


> Bei diesen Scheiß-Captchas brauche zumindest ich immer drei bis fünf
> Versuche, bis ich erraten habe, was das in dem Bild gemeinte sein
> könnte. Kids, don't try this at home (page).

Da gibt es gravierende Unterschiede. Die meisten, die mir begegnet
sind, sind eigentlich ganz gut lesbar. Problematischer finde ich den
Punkt mit der Barrierefreiheit.

--
http://blog.antikoerperchen.de

Jens Kutilek

unread,
Jul 27, 2005, 7:15:35 AM7/27/05
to
Basar Alabay schrieb:

> ich habe etwas merkwürdiges erlebt.
> Auf meiner Webseite habe ich ein Formular zur Kontaktaufnahme.
> Nach und nach schlug Spam auf die Adresse, die via PHP dort angegeben
> ist, auf. Da die Adresse schon alt ist, dachte ich, aha, ich ändere sie
> einfach mal.

Stichwort "SMTP-Injection".

Hatte ich auch gerade in meinem Kontaktformular ... der Spammer gibt in
das Feld "Absender" oder "Absender-E-Mail" sowas wie

"fysy...@kutilek.de <fysyfdep"@kutilek.de
Content-Type: multipart/mixed; boundary="===============1474487705=="
MIME-Version: 1.0
Subject: 2926063d
To: spa...@example.com

ein und hofft dann, daß das ungeprüft als Absender in die Mail eingebaut
wird. Wenn das nämlich als Header interpretiert wird, kann er
zusätzliche Mailadressen als Empfänger eintragen.

> Und vor allem ... wie kann man ein Formular sicher bauen, so daß so
> etwas nicht passieren kann? Ich dachte, GERADE Formulare seien doch
> sicherer und besser als reine Mailadressen.

Eingaben prüfen, nicht nur ob was drinsteht in den Feldern, sondern
auch, ob es das ist, was rein darf.

X-Post, Fup2 de.comp.lang.php.misc

Tschüs,
Jens.

--
Diejenigen werden siegen, die es verstehen,
Unordnung zu schaffen, ohne sie zu lieben. (G. Debord)

Lars Kasper

unread,
Jul 27, 2005, 9:27:56 AM7/27/05
to
Dirk Niemeier schrieb:

> Okay, guter Punkt. Wo ist die Edit-Funktion? ;-)

Heißt Supersedes. Keine Ahnung, wo die bei Sylpheed-Claws ist.

> > Bei diesen Scheiß-Captchas brauche zumindest ich immer drei bis fünf
> > Versuche, bis ich erraten habe, was das in dem Bild gemeinte sein
> > könnte. Kids, don't try this at home (page).
>
> Da gibt es gravierende Unterschiede. Die meisten, die mir begegnet
> sind, sind eigentlich ganz gut lesbar.

Mir haben die bei Google schon gereicht.

> Problematischer finde ich den unkt mit der Barrierefreiheit.

Das sowieso.

Joachim Wiesemann

unread,
Jul 27, 2005, 9:34:24 AM7/27/05
to
Am Wed, 27 Jul 2005 11:20:29 +0200 schrieb Dirk Niemeier:

> ein kurzfristige Lösung wäre es vielleicht, in den Logs zu schauen, ob
> diese Mail-Bomben von einer oder mehreren festen IPs stammen und diese
> dann von der Seite per robots.txt auszuschließen.

Wie hoch ist wohl die Wahrscheinlichkeit, dass ein Spammer die
robots.txt liest und sich daran hält?

Wenn müsste der Webserver die IPs sperren.

Viele Grüße
Joachim

--
Dr. Joachim Wiesemann
http://www.bestviewed.de/ Seiten über Webdesign und Usability
http://jwiesemann.com/ Ingenieurdienstleistungen, Usabilityberatung
"Die schärfsten Kritiker der Elche waren früher selber welche!"

Dirk Niemeier

unread,
Jul 27, 2005, 10:13:01 AM7/27/05
to
On Wed, 27 Jul 2005 15:34:24 +0200
Joachim Wiesemann <newsant...@jwiesemann.de> wrote:

> Wie hoch ist wohl die Wahrscheinlichkeit, dass ein Spammer die
> robots.txt liest und sich daran hält?

Kleiner Lapsus. Tausche robots.txt gegen .htaccess.

--
http://blog.antikoerperchen.de

Joachim Wiesemann

unread,
Jul 27, 2005, 10:43:49 AM7/27/05
to
Am Wed, 27 Jul 2005 16:13:01 +0200 schrieb Dirk Niemeier:

> On Wed, 27 Jul 2005 15:34:24 +0200
> Joachim Wiesemann <newsant...@jwiesemann.de> wrote:
>
>> Wie hoch ist wohl die Wahrscheinlichkeit, dass ein Spammer die
>> robots.txt liest und sich daran hält?
>
> Kleiner Lapsus. Tausche robots.txt gegen .htaccess.

Schreibe doch lieber Server-Einstellungen. Denn z. B. der IIS (Insecure
Internet Server) kennt keine .htaccess.

Message has been deleted
Message has been deleted

Goetz Hoffart

unread,
Jul 27, 2005, 4:10:30 PM7/27/05
to
Basar Alabay <ala...@gmx.net> wrote:

> > Außerdem ist es bei Kontaktformularen unter Umständen sinnvoll, die Menge
> > der Mails zu begrenzen, z.B. max. 1 Mail / Minute und Absender-IP. Dadurch
> > werden sie für automatisiertes Ausfüllen uninteressant(er).
>

> Ups, Sachen gibt's.
> Kannst Du mir das mal als Quelltext posten?

sleep(zeitspanne);
mail(recipient ...);

Grüße
Götz
--
http://www.knubbelmac.de/

Message has been deleted

Goetz Hoffart

unread,
Jul 27, 2005, 4:26:55 PM7/27/05
to
Basar Alabay <ala...@gmx.net> wrote:

> > sleep(zeitspanne);
> > mail(recipient ...);
>
> Zeitspanne in Sekunden?

Kommt auf die von dir präferierte Sprache an. Steht aber in jedem Fall
in der Doku.

> Aber wo ist da die Absender-IP?

Wozu? Vor dem Versenden einer Mail wartet man einfach einen Moment. Wer
ein Kontaktformular ausfüllt kann auch zwei Sekunden warten bis die
Meldung "erfolgreich versendet" kommt.

> Geht das etwas quelltextiger? ;-)

Nicht hier.

Dirk Niemeier

unread,
Jul 27, 2005, 4:52:51 PM7/27/05
to
On Wed, 27 Jul 2005 22:26:55 +0200
use...@hoffart.de (Goetz Hoffart) wrote:

> Wozu? Vor dem Versenden einer Mail wartet man einfach einen Moment.
> Wer ein Kontaktformular ausfüllt kann auch zwei Sekunden warten bis
> die Meldung "erfolgreich versendet" kommt.

Kann es sein, dass hier einfach ein Missverständnis vorliegt?

Es geht doch darum, dass jemand z.B. nur eine E-Mail pro Minute oder so
verschicken kann und nicht n beliebig viele. Ich kann aber aus ihrem
Vorschlag ebenfalls nicht erkennen, wie das mit sleep funktionieren
soll. Ich kann damit jemanden ein paar Sekunden warten lassen, aber
nicht eine Minute oder länger, das ist unpraktikabel.

Goetz Hoffart

unread,
Jul 27, 2005, 5:27:11 PM7/27/05
to
Dirk Niemeier <the_new_s...@yahoo.de> wrote:

> Es geht doch darum, dass jemand z.B. nur eine E-Mail pro Minute oder so
> verschicken kann und nicht n beliebig viele.

Genau. Und ich verhindere mit einer Wartezeit von z.B. fünf Sekunden,
dass pro Minute nicht hunderte Mails versendet werden können, sondern
nur ein Zwölftel davon.

Narrensicher ist das wahrlich nicht, aber für mich ausreichend.

Eine Prüfung auf die IP-Adresse ist auch nicht heilversprechend, die hat
auch ihre Probleme (Proxies/NAT, IP-Spoofing etc. pp.).

Dirk Niemeier

unread,
Jul 27, 2005, 5:43:08 PM7/27/05
to
On Wed, 27 Jul 2005 23:27:11 +0200
use...@hoffart.de (Goetz Hoffart) wrote:

> Genau. Und ich verhindere mit einer Wartezeit von z.B. fünf Sekunden,
> dass pro Minute nicht hunderte Mails versendet werden können, sondern
> nur ein Zwölftel davon.

Er sagt, er bekomme täglich E-Mails in zweistelliger Höhe, also maximal
99 Stück. Das Mail-Formular scheint also nicht so frequentiert zu sein,
dass eine 5-sekündige Verzögerung daran viel ändern würde, es sei denn
die Mails werden innerhalb kürzester Zeit auf einmal verschickt und
nicht über den Tag verteilt.

--
http://blog.antikoerperchen.de

Marian Heddesheimer

unread,
Jul 28, 2005, 2:40:54 AM7/28/05
to
On Wed, 27 Jul 2005 22:10:30 +0200, Goetz Hoffart wrote:

>> > Außerdem ist es bei Kontaktformularen unter Umständen sinnvoll, die Menge
>> > der Mails zu begrenzen, z.B. max. 1 Mail / Minute und Absender-IP. Dadurch
>> > werden sie für automatisiertes Ausfüllen uninteressant(er).
>>
>> Ups, Sachen gibt's.
>> Kannst Du mir das mal als Quelltext posten?
>
>sleep(zeitspanne);
>mail(recipient ...);

Wer hindert denn den Robot, die Seite gleich mehrfach aufzurufen? Die
Spam-Bots warten in der Regel sowieso nicht, bis die "Danke-Seite"
erscheint. Also ist das mit dem Sleep ziemlich daneben.

Eine praktikable Möglichkeit wäre, die IP-Adresse aus
$_SERVER['REMOTE_ADDR'] mit dem aktuellen Zeitstempel zu speichern
(z.B. in einer Datei oder in der Datenbank). Dann müsste bei jedem
Aufruf der Seite der Bestand an gespeicherten IPs, deren Zeitstempel
"frischer" als 1 Minute ist geprüft werden. Alle IPs mit älterem
Zeitstempel könnten bei der Gelegenheit dann gelöscht werden.

Das ist also mit drei Zeilen nicht getan sondern erfordert etwas mehr
Aufwand ;-)

Damit würde man allerdings nicht die Spammer aussperren, die Ihr
Programm von Zuhause (also nicht über einen eigenen Webserver mit
fester IP-Adresse) laufen lassen, insbesondere wenn die IP-Adresse bei
jedem Aufruf geändert wird (AOL macht das z.B. standardmäßig, auch
Anonymisierungs-Proxies tauschen die IP öfters aus).

Gustaf Mossakowski

unread,
Jul 28, 2005, 2:59:40 AM7/28/05
to
Marian Heddesheimer schrieb:

> Eine praktikable Möglichkeit wäre, die IP-Adresse aus
> $_SERVER['REMOTE_ADDR'] mit dem aktuellen Zeitstempel zu speichern
> (z.B. in einer Datei oder in der Datenbank). Dann müsste bei jedem
> Aufruf der Seite der Bestand an gespeicherten IPs, deren Zeitstempel
> "frischer" als 1 Minute ist geprüft werden. Alle IPs mit älterem
> Zeitstempel könnten bei der Gelegenheit dann gelöscht werden.

Damit hätte ich mir einige Leute, die mein Kontaktformular schon benutzt
haben, ebenfalls ausgesperrt. Es gibt viele, die aus Versehen auf
»Submit« klicken und dann merken, dass sie vergessen haben, den Text zu
schreiben. (Nein, ich mag keine Pflichtfelder einführen :-))

Ich glaube aber, ich habe das zugrunde liegende Problem nicht ganz
verstanden. Wenn mir jemand persönlich (z. B. über ein Kontaktformular)
Müll schicken will, kann ich das doch gar nicht verhindern. Ich glaube
aber kaum, dass sich jemand über eine längere Zeit diesen Aufwand macht.

Ich bekäme auch täglich zig (nicht hunderte) Mails über mein
Kontaktformular mit Müll, da mal eine Lücke in der Programmierung war.
Seitdem diese weg ist, lösche ich Anfragen dieser Art direkt auf dem
Server (Suche nach Zeilenumbruch jeder Art in Feldern, die in den Kopf
der Mail eingebaut werden).

Viele Grüße
Gustaf

Alan Tiedemann

unread,
Jul 28, 2005, 3:06:11 AM7/28/05
to
Gustaf Mossakowski schrieb:

> Ich glaube aber, ich habe das zugrunde liegende Problem nicht ganz
> verstanden. Wenn mir jemand persönlich (z. B. über ein Kontaktformular)
> Müll schicken will, kann ich das doch gar nicht verhindern. Ich glaube
> aber kaum, dass sich jemand über eine längere Zeit diesen Aufwand macht.

Es geht nicht um Aufwand. Das sind Bots, also Software. Sinn und Zweck
erkenne ich zwar auch nicht, aber wenn man dann über das eigene
Mailformular täglich hunderte von SPAM-Mails bekommt, ist das für den
Empfänger zumindest lästig.

Den Absender interessiert es nicht, und niemand wird das verhindern
können, außer durch technische Barrieren wie eben Captchas.

> Ich bekäme auch täglich zig (nicht hunderte) Mails über mein
> Kontaktformular mit Müll, da mal eine Lücke in der Programmierung war.

Wie hast Du besagte "Lücke" geschlossen?

> Seitdem diese weg ist, lösche ich Anfragen dieser Art direkt auf dem
> Server (Suche nach Zeilenumbruch jeder Art in Feldern, die in den Kopf
> der Mail eingebaut werden).

Und was hindert einen *richtig* programmierten Bot daran, die Felder
korrekt auszufüllen?

Gruß,
Alan

--
Bitte nur in die Newsgroup antworten! Re:-Mails rufe ich nur selten ab.
http://www.schwinde.de/webdesign/ ~ http://www.schwinde.de/cdr-info/
Mail: at__0815<at>hotmail<punkt>com ~ news-2003-10<at>schwinde<punkt>de

Dirk Niemeier

unread,
Jul 28, 2005, 3:15:01 AM7/28/05
to
On Wed, 27 Jul 2005 19:57:42 +0200
ala...@gmx.net (Basar Alabay) wrote:

> Gregor Hermens <gher...@freenet.de> wrote:
>
> > Außerdem ist es bei Kontaktformularen unter Umständen sinnvoll, die
> > Menge der Mails zu begrenzen, z.B. max. 1 Mail / Minute und
> > Absender-IP. Dadurch werden sie für automatisiertes Ausfüllen
> > uninteressant(er).
>

> Ups, Sachen gibt's.
> Kannst Du mir das mal als Quelltext posten?
>

> B. Alabay
> .

Pseudocode:
1.Schaue in mein Verzeichnis in denen ich die IPs der Absender
gespeichert habe und lösche alle IPs die älter als 60 Sekunden sind.

2.Lese die IP des Absenders aus.

3.Prüfe ob die IP in meinem IP-Verzeichnis existiert.
3.1.Wenn nicht:
*E-Mail wird abgeschickt.
*Speichere IP des Absenders.

3.2.Andernfalls:
*Mache gar nichts/Gebe Fehler zurück.


Konkreter Code (habe nicht geprüft ob es funktioniert):

function alte_dateien_loeschen($verzeichnis, $sekunden)
{
$aktueller_timestamp=time();
$maximalalter=$aktueller_timestamp-$sekunden;

$handle=opendir($verzeichnis);
while($file = readdir($handle))
{
if($file != "." && $file != "..")
{
$datum=filemtime("$verzeichnis/$file");
if ($datum<$maximalalter)
{
unlink("$verzeichnis/$file");
}
}
}
fclose($handle);
}

function mail_versenden($empfaenger, $betreff, $nachricht, $absender)
{
$mailipverzeichnis="mail-ips";
$limit=60; //60-Sekunden-Sperre
alte_dateien_loeschen($mailipverzeichnis, $limit);
$ip=$_SERVER['REMOTE_ADDR'];
if (!file_exists("$mailipverzeichnis/$ip"))
{
if (mail($empfaenger, $betreff, $nachricht, "From: $absender"))
{
echo "Nachricht erfolgreich verschickt!";
} else
{
echo "Fehler beim Versand aufgetreten!";
touch("$mailipverzeichnis/$ip");
}
} else
{
echo "Sorry, nur alle $limit Sekunden eine Mail";
}
}

Das Verzeichnis "mail-ips" (oder wie auch immer sie es nennen möchten),
muss natürlich erstmal erstellt werden und sie müssen die erforderlichen
Schreibrechte dafür vergeben.
Das Ganze ist eigentlich recht simpel. Am Ende hat man Dateinamen in
Form von IPs in "mail-ips" rumliegen, bzw. die werden bei der nächsten
Mail sofort wieder gelöscht.

--
http://blog.antikoerperchen.de

Message has been deleted

Goetz Hoffart

unread,
Jul 28, 2005, 3:51:34 AM7/28/05
to
Marian Heddesheimer <250705....@spamgourmet.com> wrote:

> Wer hindert denn den Robot, die Seite gleich mehrfach aufzurufen?

Niemand. Das behauptete ich ja auch nicht. Nur, dass pro Minute jetzt
nur noch ein Zwölftel versandt werden kann.

> Die Spam-Bots warten in der Regel sowieso nicht, bis die "Danke-Seite"
> erscheint. Also ist das mit dem Sleep ziemlich daneben.

> ...


> Eine praktikable Möglichkeit wäre, die IP-Adresse aus
> $_SERVER['REMOTE_ADDR'] mit dem aktuellen Zeitstempel zu speichern
> (z.B. in einer Datei oder in der Datenbank). Dann müsste bei jedem
> Aufruf der Seite der Bestand an gespeicherten IPs, deren Zeitstempel
> "frischer" als 1 Minute ist geprüft werden. Alle IPs mit älterem
> Zeitstempel könnten bei der Gelegenheit dann gelöscht werden.

Ja, und wenn nun ein ge-NAT/PAT-tetes Netz mit ein paar tausend Usern
hintendran bei dir vorbeikommt? Dann sperrst du nach dem ersten
Eintrager alle anderen ziemlich lange aus.

Das mit dem IP-Zeitstempel ist also auch ziemlich daneben. Nur sperre
ich niemanden aus :-)

> Das ist also mit drei Zeilen nicht getan sondern erfordert etwas mehr
> Aufwand ;-)

"Ach".



> Damit würde man allerdings nicht die Spammer aussperren, die Ihr
> Programm von Zuhause (also nicht über einen eigenen Webserver mit
> fester IP-Adresse) laufen lassen, insbesondere wenn die IP-Adresse bei
> jedem Aufruf geändert wird (AOL macht das z.B. standardmäßig, auch
> Anonymisierungs-Proxies tauschen die IP öfters aus).

Eben.

Jens Kutilek

unread,
Jul 28, 2005, 10:13:09 AM7/28/05
to
Basar Alabay schrieb:
> Jetzt momentan habe ich das Formular ja abgeschaltet.
> Aber vorhger war es so, daß immer in zwei bis dreistündigem Abstand
> gleichzeitig (!) drei "Mails" ankamen, wie immer das überhaupt klappt,
> daß die gleichzeitig sein können. Ich denke, da wird dann gar nbicht
> mehr das Formular ausgefüllt. Das passiert wohl einmal am Anfang, um
> dann irgendwie an die Werte, also die Mailadresse zu kommen - denke ich.

Nö, an die Mailadresse kommt man darüber nicht. Es wird probiert, ob
sich das Formular zum Spammen (an fremde leute) eignet. Wenn nicht,
sollte eigentlich wieder Ruhe einkehren. Wenn doch, hast Du dann ein
Problem ...

tschüs,

Message has been deleted

Sebastian Suchanek

unread,
Jul 28, 2005, 1:43:44 PM7/28/05
to
Basar Alabay spoke thusly:

> ich habe etwas merkwürdiges erlebt.
> Auf meiner Webseite habe ich ein Formular zur
> Kontaktaufnahme. Nach und nach schlug Spam auf die Adresse,
> die via PHP dort angegeben ist, auf. Da die Adresse schon

> alt ist, dachte ich, aha, ich ändere sie einfach mal. Einen
> Tag nach der Änderung kam ein Wust von mekrwürdig
> automatisierten Mails an, in denen alle Felder mit einem
> Scheiß aufgefüllt wurden,
> [...]

Hilft Dir wahrscheinlich nicht weiter, aber ich hatte heute
sechs solche Sinnlos-Einträge in mein Gästebuch. (Ohne, daß ich
in letzter Zeit etwas daran verändert hätte.)
Irgendwie scheint da wohl doch ein Robot Amok zu laufen...


Tschüs,

Sebastian

--
http://www.baumaschinen-modelle.net
http://www.schwerlast-rhein-main.de

Message has been deleted

Jens Kutilek

unread,
Jul 28, 2005, 4:52:49 PM7/28/05
to
Basar Alabay schrieb:

> Jens Kutilek <use...@kutilek.de> wrote:
>
>> Nö, an die Mailadresse kommt man darüber nicht.
>
> Na, irgendwie ja schon, wie sonst ist denn die Mailadresse des Formulars
> bekannt? Ohne es selber zu nutzen? Diese erste Injection Geschichte kann
> ja mit BCC was rausholen.

Stimmt, das geht ja auch, daran hab ich gar nicht gedacht. Aber rein zum
Adressensammeln ist diese Methode wohl ein bißchen zu aufwendig, das
geht in Newsgroups einfacher. Ich denke, es geht hauptsächlich darum,
Spammails über austricksbare Formulare in die Welt zu senden.

Tschüs,

Irmgard Schwenteck

unread,
Jul 28, 2005, 5:03:54 PM7/28/05
to
Basar Alabay schrieb:
> Jens Kutilek <use...@kutilek.de> wrote:
>
>> Nö, an die Mailadresse kommt man darüber nicht.
>
> Na, irgendwie ja schon, wie sonst ist denn die Mailadresse des Formulars
> bekannt? Ohne es selber zu nutzen? Diese erste Injection Geschichte kann
> ja mit BCC was rausholen.

Wie soll das funktionieren? Die mailadresse weiß nur der webserver, der
mir den Müll zuschickt.

Hab auch so einen Versuch registriert: in die 3 Eingabefelder von meinem
mailformular hat einer nacheinander solchen Kram reingeschrieben, immer
mit demselben BCC-Eintrag.

Gruß
Irmgard

Message has been deleted

Irmgard Schwenteck

unread,
Jul 29, 2005, 5:41:24 AM7/29/05
to
Hallo

Basar Alabay schrieb:


>>>>> Nö, an die Mailadresse kommt man darüber nicht.
>>> Na, irgendwie ja schon, wie sonst ist denn die Mailadresse des Formulars
>>> bekannt? Ohne es selber zu nutzen? Diese erste Injection Geschichte kann
>>> ja mit BCC was rausholen.

>> Wie soll das funktionieren? Die mailadresse weiß nur der webserver, der
>> mir den Müll zuschickt.
>

> Na, erstens würde ein BCC evtl. die Mail samt dem TO auch an den Spammer
> schicken, zweitens sähe er dann den Pfad für die Datei, in der die im
> Klartext steht. Ist ja eine Textdatei. Ob man da was mit robots oder
> ..htaccess machen kann, weiß ich nicht, ich wüßte z.B. auch nicht, wie
> man das Verzeichnis schützen soll, in dem css, js und eben solche php
> Sachen liegen.

Da mißverstehst Du etwas, denk ich.
An PHP-Dateien sollte niemand direkt herankommen, ansonsten läuft
irgendetwas fürchterlich flasch.
Das PHP- script liest die Formulareingaben in Variablen.
Diese Variablen werden - mit ein bissel Erläuterungstext - in eine
Variable $body geschrieben, die Platzhalter ergänzt:

---------------
Es meldete sich jemand mit:

Name: <name>
E-Mail: <email>
Kommentar: <frage>
-----------------

Das script schickt das mail ab per
mail($empf,$subject,$body);

$empf bin ich, $subject ist sowas wie "Nachricht aus dem Kontaktformular".
Dann wird der Schreiber per header-funktion weitergeleitet.

Meine Frage wäre hier: was sollte man noch sicherheitshalber mit den
übergebenen Formulareingaben machen?

xpost und fup nach de.comp.lang.php.misc,
quoting deshalb ergänzt

Gruß
Irmgard


Gustaf Mossakowski

unread,
Jul 29, 2005, 11:02:17 AM7/29/05
to
Alan Tiedemann schrieb:

> Es geht nicht um Aufwand. Das sind Bots, also Software. Sinn und Zweck
> erkenne ich zwar auch nicht, aber wenn man dann über das eigene
> Mailformular täglich hunderte von SPAM-Mails bekommt, ist das für den
> Empfänger zumindest lästig.

Na gut, da habe ich wohl bisher Glück gehabt und bin von sowas verschont
worden.

>> Ich bekäme auch täglich zig (nicht hunderte) Mails über mein
>> Kontaktformular mit Müll, da mal eine Lücke in der Programmierung war.
>
> Wie hast Du besagte "Lücke" geschlossen?

Das war eine Lücke, die ich selber hineingebaut hatte: Übernahme des
Absendernames und der Absender-Mailadresse in den Mailkopf. Wenn man die
Variablen nicht prüft, kann man so einfach weitere Headerzeilen
einfügen. Wie so eine Lücke zu schließen ist, habe ich ja im folgenden
Absatz beschrieben:

>> Seitdem diese weg ist, lösche ich Anfragen dieser Art direkt auf dem
>> Server (Suche nach Zeilenumbruch jeder Art in Feldern, die in den
>> Kopf der Mail eingebaut werden).
>
> Und was hindert einen *richtig* programmierten Bot daran, die Felder
> korrekt auszufüllen?

Nichts. Ich würde halt sagen, dass der Aufwand dafür zu groß ist. Für
mich ist es kein großer Aufwand, ein Formularfeld umzubenennen. Und
schon funktioniert der Bot nicht mehr.

Viele Grüße
Gustaf

Alan Tiedemann

unread,
Jul 29, 2005, 1:06:48 PM7/29/05
to
Gustaf Mossakowski schrieb:

> Alan Tiedemann schrieb:
>> Es geht nicht um Aufwand. Das sind Bots, also Software. Sinn und Zweck
>> erkenne ich zwar auch nicht, aber wenn man dann über das eigene
>> Mailformular täglich hunderte von SPAM-Mails bekommt, ist das für den
>> Empfänger zumindest lästig.
>
> Na gut, da habe ich wohl bisher Glück gehabt und bin von sowas verschont
> worden.

Es kann auch sein, daß das Mail-Formular des OP Ähnlichkeit mit
"E-Card"-Formularen hat, bei denen man (also: der Bot) selber den
Empfänger eintragen kann. Entsprechende Bots sind dann richtig lästig,
weil sie den eigentlichen Mail-Absender wirksam verschleiern (sofern der
Betreiber des E-Card-Services nichts mitloggt).

>>> Ich bekäme auch täglich zig (nicht hunderte) Mails über mein
>>> Kontaktformular mit Müll, da mal eine Lücke in der Programmierung war.
>>
>> Wie hast Du besagte "Lücke" geschlossen?
>
> Das war eine Lücke, die ich selber hineingebaut hatte: Übernahme des
> Absendernames und der Absender-Mailadresse in den Mailkopf. Wenn man die
> Variablen nicht prüft, kann man so einfach weitere Headerzeilen
> einfügen.

Au ja, sowas ist natürlich böse...

> Wie so eine Lücke zu schließen ist, habe ich ja im folgenden
> Absatz beschrieben:

Stimmt, vor dem Hintergrund ist die Lösung natürlich korrekt, an solche
Möglichkeit der Ausnutzung hatte ich nicht gedacht!

>>> Seitdem diese weg ist, lösche ich Anfragen dieser Art direkt auf dem
>>> Server (Suche nach Zeilenumbruch jeder Art in Feldern, die in den
>>> Kopf der Mail eingebaut werden).
>>
>> Und was hindert einen *richtig* programmierten Bot daran, die Felder
>> korrekt auszufüllen?
>
> Nichts. Ich würde halt sagen, dass der Aufwand dafür zu groß ist. Für
> mich ist es kein großer Aufwand, ein Formularfeld umzubenennen. Und
> schon funktioniert der Bot nicht mehr.

Stimmt auch wieder.

Danke für Deine Erläuterungen, die sind für mich sehr hilfreich, weil
ich auch ein Mail-Formular plane!

Message has been deleted

Konni Scheller

unread,
Aug 9, 2005, 8:01:44 PM8/9/05
to
Gustaf Mossakowski <gus...@gmx.de> wrote:

> Nein, ich mag keine Pflichtfelder einführen :-)

Warum eigentlich nicht?

Servus,
Konni

Gustaf Mossakowski

unread,
Aug 10, 2005, 3:55:58 PM8/10/05
to
Konni Scheller schrieb:

>> Nein, ich mag keine Pflichtfelder einführen :-)
>
> Warum eigentlich nicht?

Naja, dann müsste ich den Inhalt auch darauf überprüfen, ob er sinnvoll
ist. Ich habe erst neulich wieder ein Formular ausgefüllt, dass von mir
die Faxnummer wissen wollte - Pflichtfeld. Habe nun aber kein Fax. Also
schreibe ich »keins« rein. Das kann ich aber auch reinschreiben, wenn
ich eins habe. Wozu also das Pflichtfeld?

Es gibt immer Leute, die vergessen, bei Anfragen ihre Mailadresse
einzutragen. In neun von zehn Fällen bemerken sie es aber nach
Abschicken des Formulars von selbst.

Letztendlich ist es auch eine Sache der Bequemlichkeit des
Programmierers. Pflichtfelder zu kontrollieren, erfordert immer etwas
mehr Code.

Viele Grüße
Gustaf

Konni Scheller

unread,
Aug 11, 2005, 2:03:59 AM8/11/05
to
Gustaf Mossakowski <gus...@gmx.de> wrote:

> Ich habe erst neulich wieder ein Formular ausgefüllt, dass von mir
> die Faxnummer wissen wollte - Pflichtfeld. Habe nun aber kein Fax. Also
> schreibe ich »keins« rein. Das kann ich aber auch reinschreiben, wenn
> ich eins habe. Wozu also das Pflichtfeld?

Naja beim Fax ist ein Pflichtfeld nur in wenigen Ausnahmefällen
sinnvoll.

> Es gibt immer Leute, die vergessen, bei Anfragen ihre Mailadresse
> einzutragen. In neun von zehn Fällen bemerken sie es aber nach
> Abschicken des Formulars von selbst.

'Tja, der zehnte Kunde wäre der mit dem Riesenauftrag gewesen.


> Letztendlich ist es auch eine Sache der Bequemlichkeit des
> Programmierers. Pflichtfelder zu kontrollieren, erfordert immer etwas
> mehr Code.

HTML_QuickForm rulez :-)

Servus,
Konni

0 new messages