Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

PHP-Formmailer ohne Captcha

Frage Entwicklung PHP

Mitglied: ovu-p86

ovu-p86 (Level 1) - Jetzt verbinden

10.12.2011, aktualisiert 21:34 Uhr, 3449 Aufrufe, 6 Kommentare

Hallo,

suche nach einem sicheren PHP-Formmailer ohne Captcha für ein Kontaktformular.

Ich weiß, das Internet wimmelt nur so von Beiträgen dazu.
Da ich keine Ahnung von PHP habe, ist mein Problem, daß ich die Qualität der Beiträge und Lösungen nicht einschätzen kann.

Deshalb bitte keine allgemeinen Verweise auf Google.
Die Frage richtet sich an Praktiker, die mir eine Empfehlung geben können, oder sogar einen Code haben der sicher ist.


Wichtig wäre mir:
1. keine Lösung die über den Server eines Fremdanbieters läuft
2. Code der keine zusätzlichen Tools wie z.B. YDFramework notwendig macht.
3. kein Captcha


1. Frage:

Habt ihr eine Empfehlung bzw. Code für ein sicheres Kontaktformular ohne Catcha.


2. Frage:

Folgendes Codefragment hab ich im Internet gefunden. Wie bewertet ihr das?

Fand ich mit meinen beschränkten Kenntnissen gut. Gut finde ich, daß ich dadurch auch Rückmeldungen bekomme.
Gefunden habe ich den Beitrag bei blog.antikoerperchen.de

Hier der Code:

01.
/* 
02.
Fügen sie die Funktionen "spamlevel_ermitteln" und "spamlevel_verarbeitung"  
03.
irgendwo in den Quellcode ihres PHP-Formmailers ein. 
04.
 
05.
Passen sie die Variable $meine_domain an ihren Domainnamen an. 
06.
*/ 
07.
 
08.
function spamlevel_ermitteln($text, $linebreak, $remove_linebreaks, &$remove_linebreaks_from_text) { 
09.
   $spam_level=0; 
10.
   $meine_domain="antikoerperchen.de"; //BITTE ANPASSEN 
11.
	if (strpos(strtolower($text), "@".$meine_domain)) $spam_level+=3; 
12.
	if (strpos(strtolower($text), "\ncc:")) $spam_level+=1; 
13.
	if (strpos(strtolower($text), "\nbcc:")) $spam_level+=1; 
14.
	if (strpos(strtolower($text), "\nsubject:")) $spam_level+=1; 
15.
	if (strpos(strtolower($text), "\ncontent-type:")) $spam_level+=1; 
16.
	if (strpos(strtolower($text), "\nmime-version:")) $spam_level+=1; 
17.
	if (strpos(strtolower($text), "\ncontent-transfer-encoding:")) $spam_level+=1; 
18.
	if (strpos(strtolower($text), "\ncontent-disposition:")) $spam_level+=1; 
19.
 
20.
	if (strpos(strtolower($text), "\rcc:")) $spam_level+=1; 
21.
	if (strpos(strtolower($text), "\rbcc:")) $spam_level+=1; 
22.
	if (strpos(strtolower($text), "\rsubject:")) $spam_level+=1; 
23.
	if (strpos(strtolower($text), "\rcontent-type:")) $spam_level+=1; 
24.
	if (strpos(strtolower($text), "\rmime-version:")) $spam_level+=1; 
25.
	if (strpos(strtolower($text), "\rcontent-transfer-encoding:")) $spam_level+=1; 
26.
	if (strpos(strtolower($text), "\rcontent-disposition:")) $spam_level+=1; 
27.
 
28.
	if (strpos(strtolower($text), "\lcc:")) $spam_level+=1; 
29.
	if (strpos(strtolower($text), "\lbcc:")) $spam_level+=1; 
30.
	if (strpos(strtolower($text), "\lsubject:")) $spam_level+=1; 
31.
	if (strpos(strtolower($text), "\lcontent-type:")) $spam_level+=1; 
32.
	if (strpos(strtolower($text), "\lmime-version:")) $spam_level+=1; 
33.
	if (strpos(strtolower($text), "\lcontent-transfer-encoding:")) $spam_level+=1; 
34.
	if (strpos(strtolower($text), "\lcontent-disposition:")) $spam_level+=1; 
35.
 
36.
	if ($linebreak!="no_linebreak_check") { 
37.
		if (($count=substr_count($text, "\n"))>0) $spam_level+=$count*1; 
38.
		if (($count=substr_count($text, "\r"))>0) $spam_level+=$count*1; 
39.
		if (($count=substr_count($text, "\l"))>0) $spam_level+=$count*1; 
40.
41.
	if ($remove_linebreaks!="no_linebreak_remove") { 
42.
		$remove_linebreaks_from_text=str_replace("\n", "", $remove_linebreaks_from_text); 
43.
		$remove_linebreaks_from_text=str_replace("\r", "", $remove_linebreaks_from_text); 
44.
		$remove_linebreaks_from_text=str_replace("\l", "", $remove_linebreaks_from_text); 
45.
46.
	return $spam_level
47.
48.
	 
49.
function spamlevel_verarbeitung($spam, &$betreff, &$text) { 
50.
	$spamlevel=5; //Ab diesem Spamlevel wird eine SPAM-Warnung an die E-Mail angehängt. 
51.
	$spamerkanntlevel=10; //Ab diesem Level wird angenommen, dass es sich um Spam handelt. 
52.
	$spamstoplevel=15; //Ab diesem Spamlevel wird der E-Mail-Versand verweigert. 
53.
	$spamwarnungverdacht="ACHTUNG: DIESE MAIL WURDE ALS POTENTIELLER SPAM ERKANNT."; //Diese Meldung wird in der E-Mail als Warnung ausgegeben, wenn Spamverdacht besteht. 
54.
	$spamwarnungerkannt="ACHTUNG: DIESE MAIL WURDE ALS SPAM ERKANNT."; //Diese Meldung wird in der E-Mail als Warnung ausgegeben, wenn Spamverdacht besteht. 
55.
	$spamverdacht="SPAM-VERDACHT"; //Diese Meldung wird vor den Betreff gestellt, wenn eine E-Mail möglicherweise als Spam in Betracht kommt. 
56.
	$spamerkannt="SPAM"; //Diese Meldung wird vor den Betreff gestellt, wenn eine E-Mail als Spam erkannt wurde. 
57.
	$nospam_meldung="NO SPAM, THX."; //Abbruchmeldung, wenn E-Mail-Versand aufgrund eines zu hohen Spamlevels verweigert wird. 
58.
 
59.
	if ($spam>=$spamstoplevel) die($nospam_meldung); //Breche E-Mail-Versand ab. 
60.
	 
61.
	elseif ($spam>=$spamlevel && $spam<$spamstoplevel) { 
62.
		if ($spam<$spamerkanntlevel) { 
63.
			$betreff=$spamverdacht.": ".$betreff
64.
			$text=$spamwarnungverdacht."\nSPAM-LEVEL: ".$spam."\n\n".$text
65.
			} else
66.
				$betreff=$spamerkannt.": ".$betreff
67.
				$text=$spamwarnungerkannt."\nSPAM-LEVEL: ".$spam."\n\n".$text
68.
69.
70.
71.
 
72.
 
73.
/* 
74.
Fügen sie die nachfolgenden Quellcode-Block VOR der Quellcodezeile ein, in der die 
75.
Mail verschickt wird. Passen sie die Variablennamen  
76.
$betreff, $name, $absender_mail und $text an die Variablennamen ihres  
77.
Formmailers an. 
78.
*/ 
79.
 
80.
$spamlevel+=spamlevel_ermitteln( 
81.
                                $name,  
82.
                                "check_linebreaks",  
83.
                                "remove_linebreaks",  
84.
                                $name 
85.
                                ); 
86.
$spamlevel+=spamlevel_ermitteln( 
87.
                                $absender_mail,  
88.
                                "check_linebreaks",  
89.
                                "remove_linebreaks",  
90.
                                $absender_mail 
91.
                               ); 
92.
$spamlevel+=spamlevel_ermitteln( 
93.
                                $betreff
94.
                                "check_linebreaks"
95.
                                "remove_linebreaks"
96.
                                $betreff 
97.
                               ); 
98.
$spamlevel+=spamlevel_ermitteln( 
99.
                                $text,  
100.
                                "no_linebreak_check",  
101.
                                "no_linebreak_remove",  
102.
                                $text 
103.
                               ); 
104.
spamlevel_verarbeitung($spamlevel, $betreff, $text); 
105.
 

Über Antorten zu den Fragen wäre ich dankbar.

(Wie gesagt kenne ich mich mit PHP nicht aus. Kann lediglich durch die Kenntnisse aus anderen Sprachen kleinere Einbindungen im Try und Error-Verfahren vornehmen.)



Gruß
Uwe
Mitglied: nxclass
10.12.2011 um 23:01 Uhr
Hallo,
das ist ein netter Code, aber viel bringt das auch nichts, denn am Ende bekommst du trotzdem die Nachricht - und dass evtl. 1000 mal wenn der Spamer es will.

Ist den das Kontaktformular denn so wichtig für Dich ?
ich keine Ahnung von PHP habe
... und offenbar auch keinen Programmierer - nehme ich mal an, dass Du nur eine kleine Webseite hast mit paar Privaten- oder Firmen- Informationen.
Sollte es so sein, würde ich eher auf eine Telefonnummer oder E-Mail Adresse verweisen und dem Client seine eigene Kontaktart und E-Mail Programm wählen lassen.
Bitte warten ..
Mitglied: ovu-p86
10.12.2011 um 23:19 Uhr
Hallo nxclass,

danke für die Antwort.

Ist den das Kontaktformular denn so wichtig für Dich ?

Ja, in der Form, daß ich endlich ein universelles Instrument haben möchte, mit dem ich ein Standard-Kontaktformular, aber auch andere Antwortformulare erzeugen kann. Ich möchte eine Grundbasis, die ich mir entsprechend anpasse.

Wichtig ist mir, daß ich nicht zur Spam-Schleuder werde.

Was ich bisher an Grundprinzipien rausbekommen habe ist; 1, daß man Eingabeformular und php trennen sollte und 2. das man die Ziel-eMail-Adresse nicht als Variable definieren soll sondern fest verdrahten soll.


Noch mal eine Frage zum Codefragment:

Du sagst, das ist wirkungslos.
Ist das prinzipiell so, oder kann ich durch anpassen der Level (also Versand wird früher verhindert) das Problem lösen?
Vor allem verhindert der Code zumindest teilweise, daß ich zur Spam-Schleuder werde?
Was kann ich zusätzlich tun?
Wie gesagt trotz meiner beschränkten php-Kenntnisse finde ich den Code einleuchtend gut. Vor allem das ich mitbekomme wenn ich als Spamschleuder mißbraucht werde

Kannst du mir irgendwie weiterhelfen?


Gruß
Uwe
Bitte warten ..
Mitglied: nxclass
11.12.2011 um 00:35 Uhr
Wichtig ist mir, daß ich nicht zur Spam-Schleuder werde.
... damit ich das richtig verstehe - die Formular Daten werden nur an eine bestimmte E-Mail Adresse gesendet oder an eine Adresse die der Client definiert ?

Ziel-eMail-Adresse nicht als Variable definieren soll sondern fest verdrahten soll.
... also wahrscheinlich nicht - dann wird auch nur diese Adresse gespammt, wenn jemand das Formular 1000 mal sendet - und das muss verhindert werden.
(man sollte dann allerdings auch nicht eine "Kopie an Sie" senden - sonnst wird es ggf. Böse enden)

Sowas kann man erreichen, indem man ein Log (sqlite?) führt und einen Client nach zB: 3 gesendeten Nachrichten innerhalb von 5 min - für eine gewisse zeit sperrt.
Eingaben wie E-Mail Adresse und Name sollte man sowieso immer prüfen.
Bitte warten ..
Mitglied: ovu-p86
11.12.2011 um 01:15 Uhr
Hallo nxclass,

die Formulardaten sollen zunächst nur an mich, meine im Code definierte eMail-Adresse gesendet werden.
(wenn ich mich mal besser auskenne werde ich das auch noch ergänzen um eine Antwortmail an den Absender, also an die im Formular vom Absender angegebene eMail-Adresse, zu senden, zunächst aber nicht.)

Wie gesagt Hauptziel ist: Ich will nicht zur Spamschleuder werden. Wenn ja, will ich das mitbekommen. Ich denke das ist ok.
Wenn ich selber zugespammt werde kann ich immer noch reagieren.

Ich suche eigentlich nur ein sicheres Code-Grundgerüst auf dem ich aufbauen kann.

Fragen:
1. Ist das oben angegebene Codefragment wirksam um nicht als Spamschleuder mißbraucht zu werden? Falls ja, bekomme ich das mit?
2. Hast du nicht eine Code-Grundstruktur die du posten kannst?

Hab zwischenzeitlich noch rumgesucht und getestet.
Gut finde ich auch den folgenden Beitrag 1ingo. Hab mit dem auch rumprobiert und modifiziert.. Funktioniert auch soweit. Problem, ich weiß nicht wie den von mir so geliebten (wegen der Rückmeldung), oben genannten Code integieren kann.


Gruß
Uwe
Bitte warten ..
Mitglied: mrtux
11.12.2011 um 02:28 Uhr
Hi !

Warum willst Du das unbedingt ohne Captcha realisiert haben, gibt es dafür irgend einen plausiblen Grund?

Auch wenn das ein Thema ist, wo es immer wiedermal Diskussionen über Sinn und Zweck gibt (siehe Bericht in der ct), reichen sie meist immerhin aus, um wenigstens Otto Möchtegern Spammer und den kleinen Klausi Skriptkid davon abzuhalten, die Forms als Spielwiese fürs Selbststudium zu nutzen oder neu erworbene "Hacker" Kenntnisse zu testen.

mrtux
Bitte warten ..
Mitglied: ovu-p86
11.12.2011 um 03:05 Uhr
Hallo mrtux,

ich finde Captchas ungastlich. Möchte es dem Nutzer nicht zu kompliziert machen.

Ich denke im Sinne der Community ist es doch ok, wenn ich zunächst hauptsächlich daran denke nicht selber als Spamschleuder genutzt zu werden und erst in zweiter Linie daran selber nicht zugemüllt zu werden.

In diesem Sinne wäre es schon ein riesen Vorteil möglichst schnell zu erfahren ob man als Spamschleuder mißbraucht wird. Dann kann man noch rechtzeitig abschalten.

Frage: Ist das ganz oben angegebene Codefragment wirksam um nicht als Spamschleuder mißbraucht zu werden? Falls ja, bekomme ich das mit?


Gruß
Uwe
Bitte warten ..
Ähnliche Inhalte
Netzwerkmanagement
Google hat ungewöhnlichen Netzwerkverkehr aus meinem Netzwerk festgestellt - Captcha
Frage von Erix83Netzwerkmanagement6 Kommentare

Hi, seit ein paar Monaten bekommen unsere Mitarbeiter (ca. 60 Leute) bei Websuchen via Google, den Hinweis: "Unsere Systeme ...

PHP
PHP statements mit PHp erzeugen
gelöst Frage von LorderichPHP4 Kommentare

Hallo zusammen, ich habe eine Datei, in welcher per switch und case die Webseiten definiert werden, welche bei Aufruf ...

PHP
PHP - Variable in anderes PHP-Skript mitgeben
gelöst Frage von Jens4everPHP3 Kommentare

Hi zusammen, könnt ihr mir kurz helfen? Ich habe folgendes vor: Ich möchte, dass beim Aufruf von "check1.php" eine ...

Webbrowser
Windows 7 Internet Explorer 11 Das Captcha von Googel schaltet nicht weiter
Frage von 116480Webbrowser

Hallo, ab und zu kommt ein Captcha von Google. Wir haben schon Internet Explorer zurück gesetzt. Gibt man das ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 StundenWindows 10

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 4 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 18 StundenInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 21 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte14 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...