Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

php-Kontaktformular Schutz vor Spam

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Merkle
PostRank 4
PostRank 4
Beiträge: 161
Registriert: 14.10.2005, 09:31
Wohnort: Mannheim

Beitrag von Merkle » 05.10.2006, 18:04

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

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

baMargera
PostRank 4
PostRank 4
Beiträge: 103
Registriert: 09.09.2006, 16:49
Wohnort: \dev\Köln

Beitrag von baMargera » 05.10.2006, 18:12

Also ich kann dir das Bot-Trap tool von airport_1 (der hier auch im Forum unterwegs ist) empfehlen.

www.bot-trap.de

everflux
PostRank 8
PostRank 8
Beiträge: 939
Registriert: 01.05.2006, 17:15

Beitrag von everflux » 05.10.2006, 22:12

Vor allem(!) solltest Du unbedingt sämtlich User-Eingaben prüfen.
Traue niemals dem was da so reinkommt.
https://everflux.de/ blogging about life, programming, seo and the net

Anzeige von ABAKUS

von Anzeige von ABAKUS »

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

Jetzt anfragen: 0511 / 300325-0.


seikodäd
PostRank 4
PostRank 4
Beiträge: 165
Registriert: 21.02.2006, 22:37
Wohnort: Debuggingen

Beitrag von seikodäd » 05.10.2006, 22:37

@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";

Hasenhuf
PostRank 9
PostRank 9
Beiträge: 2840
Registriert: 26.12.2005, 22:22

Beitrag von Hasenhuf » 05.10.2006, 23:00

@ 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

Kristian
PostRank 9
PostRank 9
Beiträge: 1484
Registriert: 20.07.2005, 16:30

Beitrag von Kristian » 05.10.2006, 23:44

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
Seo-Check Biete Links zu Schmuck und Hochzeit sowie Artikelplätze für Firmen allgemein.

Kristian
PostRank 9
PostRank 9
Beiträge: 1484
Registriert: 20.07.2005, 16:30

Beitrag von Kristian » 05.10.2006, 23:45

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....
Seo-Check Biete Links zu Schmuck und Hochzeit sowie Artikelplätze für Firmen allgemein.

everflux
PostRank 8
PostRank 8
Beiträge: 939
Registriert: 01.05.2006, 17:15

Beitrag von everflux » 06.10.2006, 22:18

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.
https://everflux.de/ blogging about life, programming, seo and the net

goldi
PostRank 1
PostRank 1
Beiträge: 8
Registriert: 23.07.2006, 11:11
Wohnort: Neuss

Beitrag von goldi » 07.10.2006, 17:12

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;;

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag