Seite 1 von 1

php-Kontaktformular Schutz vor Spam

Verfasst: 05.10.2006, 18:04
von Merkle
Hallo zusammen

wie kann ich ohne Captscha mein php Kontaktformular vor Spammern schützen? Habe gelesen, dass folgender Code helfen soll:
$more = "From: $email\r\nReturn-Path: $email\r\nContent-Type:text";
$EMAIL = str_replace("\n", "", str_replace("\r", "", $EMAIL));

Stimmt das?

Danke für eure Antworten
Rolf Merkle

Verfasst:
von

Verfasst: 05.10.2006, 18:12
von baMargera
Also ich kann dir das Bot-Trap tool von airport_1 (der hier auch im Forum unterwegs ist) empfehlen.

www.bot-trap.de

Verfasst: 05.10.2006, 22:12
von everflux
Vor allem(!) solltest Du unbedingt sämtlich User-Eingaben prüfen.
Traue niemals dem was da so reinkommt.

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 05.10.2006, 22:37
von seikodäd
@Rolf

das eine ist das verhindern von einträgen in gästebüchern, blogs etc. durch bots - dazu bedient man sich eben der captchas.

worauf dein code hindeutet, ist das entfernen von zeilenumbrüchen aus der ins kontaktformular eingegebenen email-adresse. dieses hat insofern sinn, als dass man ansonsten relativ einfach in der lage wäre, zusätzliche zeilen in den email-header einzufügen, z.b. sowas:

Bcc: <weitere@adresse.example>

mit einem einfachen script könnte man ein kontaktformular ohne diese sicherheitsvorkehrung dazu missbrauchen, um massenweise mails zu verschicken.

btw, so wär's richtig:
$email = str_replace("\n", "", str_replace("\r", "", $email));
$more = "From: $email\r\nReturn-Path: $email\r\nContent-Type: text/plain";

Verfasst: 05.10.2006, 23:00
von Hasenhuf
@ Merkle, das Prinzip des codes schützt in erster Linie davor, daß das Kontaktformular dafür verwendet wird an andere Leute Spam zu versenden. Falls es das ist was Du willst, davor selber Spam zu bekommen schützt es nur teilweise.

https://www.abakus-internet-marketing.d ... ktformular
https://www.abakus-internet-marketing.d ... ktformular
dem Rat gefolgt: https://www.drweb.de/webmaster/kontakt-formulare.shtml

Verfasst: 05.10.2006, 23:44
von Kristian
Hallo

Für mich sind die zwei Zeilen Kot (fast) das sinnfreieste, was ich heute gelesen habe.
In der ersten Zeile soll wohl der Header der Mail gebastelt werden, bemerkenswert ist die Angabe des Content-Type, den es so nicht gibt.
In der zweiten Zeile wird dann die eMailadresse berichtigt.
Das ist etwas spät, da der Wert vorher schon im Header plaziert wurde und etwas eigen, da die Variable mal als $email und dann als $EMAIL auftaucht.
Funktion = 0.

Aber was soll's?
Ist doch PHP, Hauptsache es macht Spaß ;-)

Gruss Kristian

Verfasst: 05.10.2006, 23:45
von Kristian
Hallo

Für mich sind die zwei Zeilen Kot (fast) das sinnfreieste, was ich heute gelesen habe.
In der ersten Zeile soll wohl der Header der Mail gebastelt werden, bemerkenswert ist die Angabe des Content-Type, den es so nicht gibt.
In der zweiten Zeile wird dann die eMailadresse berichtigt.
Das ist etwas spät, da der Wert vorher schon im Header plaziert wurde und etwas eigen, da die Variable mal als $email und dann als $EMAIL auftaucht.
Funktion = 0.

Aber was soll's?
Ist doch PHP, Hauptsache es macht Spaß ;-)

Gruss Kristian

PS: Fehlermeldung beim absenden diese Postings:
Failed sending email :: PHP ::
DEBUG MODE
Line : 234
File : emailer.php

Naja zumindest zweimal eingetragen....

Verfasst: 06.10.2006, 22:18
von everflux
Das mit der Fehlermeldung im Abakus Forum hab ich auch :(
Bereits an Mr. Abakus gemailt, denke irgendwann wirds bemerkt =)
Hast Du einen RSS Link oder E-Mail Notify benutzt um zu antworten, oder übers Forum? War so meine erste Theorie...

Aber nochmal was zum Thema:
Was genau für "SPAM" soll denn verhindert werden, denke die Frage sollte wirklich zuerst geklärt werden.

PHP-Funktionen gegen E-Mail-Spam

Verfasst: 07.10.2006, 17:12
von goldi
Hier drei Funktionen, die hilfreich sein könnten. Sie schützen vor Versuchen, über ein Kontaktformular Spam zu versenden bzw. melden falsch formatierte E-Mail-Adressen.

Code: Alles auswählen

// Prüft, ob Eingabe Zeilenumbrüche enthält
function has_no_newlines&#40;$text&#41;
&#123;
   return preg_match&#40;"/&#40;%0A|%0D|\\n+|\\r+&#41;/i", $text&#41; == 0;
&#125;

// Prüft, ob mehrzeilige Textangaben E-Mail-Headerangaben enthalten
function has_no_emailheaders&#40;$text&#41;
&#123;
   return preg_match&#40;"/&#40;%0A|%0D|\\n+|\\r+&#41;&#40;content-type&#58;|to&#58;|cc&#58;|bcc&#58;&#41;/i", $text&#41; == 0;
&#125;


// Prüft, ob Angabe eine korrekt formatierte Mailadresse ist
function is_valid_email&#40;$email&#41;
&#123;
	return preg_match&#40;"/^&#91;^@&#93;+@.+\.\D&#123;2,6&#125;$/", $email&#41;;
&#125;

//Beispielanwendung
if &#40;!has_no_newlines&#40;$email&#41; || !has_no_emailheaders&#40;$text&#41;&#41;
  die &#40;"Die Eingabe wurde durch den Spam-Filter beanstandet und nicht entgegen genommen."&#41;;

if &#40;!is_valid_email&#40;$email&#41;&#41;
  die &#40;"Die eingegebene E-Mail-Adresse scheint ungültig zu sein"&#41;;