Zur Navigation

Sicherheit vom PHP Mail Formularen

1 Gustafsson

moin,
aus gegebenen anlass und aus diesem -> thread heraus, ist die frage nach der sicherheit von php mailformularen entstanden. es ist ja allen die problematik des hackens von mailscripten zu spam-zwecken via break und bcc einfügen bekannt... mir nicht so ganz, jörg war so nett und hat mich aufgeklärt.

hier nun das besagte script, es stammt übrigens von hier:
http://johannesries.de/webwork/contactform/

(von Jörg wegen Urheberrecht nachträglich gekürzt)

function wpcf_is_malicious($input) {
	$is_malicious = false;
	$bad_inputs = array("\r", "\n", "mime-version", "content-type", "cc:", "to:");
	foreach($bad_inputs as $bad_input) {
		if(strpos(strtolower($input), strtolower($bad_input)) !== false) {
			$is_malicious = true; break;
		}
	}
	return $is_malicious;
}

	if(wpcf_is_malicious($_POST['wpcf_your_name']) || wpcf_is_malicious($_POST['wpcf_email'])) {
		$ok = false; $reason = 'malicious';
	}

	if($ok == true)
	{
		return true;
	}
	else {
		if($reason == 'malicious') {
			$wpcf_strings['error'] = "<div style='font-weight: bold;'>Folgendes ist in den Feldern Name oder E-Mail-Adresse nicht erlaubt: Zeilenumbruch oder die Phrasen 'mime-version', 'content-type', 'cc:' oder 'to:'.</div>";
		} elseif($reason == 'empty') {
			$wpcf_strings['error'] = '<div style="font-weight: bold;">' . stripslashes(get_option('wpcf_error_msg')) . '</div>';
		}
		return false;
	}
}

gruß uwe

24.02.2006 00:43 | geändert: 24.02.2006 01:54

2 Jörg Kruse

Hallo Uwe,

das Script prüft mit folgender Funktion die Eingaben nach den potentiell gefährlichen Strings "\r", "\n", "mime-version", "content-type", "cc:" und "to:":

function wpcf_is_malicious($input) {
$is_malicious = false;
$bad_inputs = array("\r", "\n", "mime-version", "content-type", "cc:", "to:");
foreach($bad_inputs as $bad_input) {
if(strpos(strtolower($input), strtolower($bad_input)) !== false) {
$is_malicious = true; break;
}
}
return $is_malicious;
}

Zur Sicherheit kannst du das Formular auch nochmal testen, indem du einen dieser Strings in einer Eingabe verwendest, die im Email-Header Eingang findet

24.02.2006 01:50

3 Gustafsson

moin jörg,

ich danke dir ;-) werde es prüfen. entschuldige das mit dem copyright, ich wusste nicht genau was man zum ansehen und beurteilen alles braucht.

gruß uwe

24.02.2006 02:00

4 Jörg Kruse

Dass du das Script vollständig gepostet hast, war schon ok so, wenn du die relevanten Stellen nicht kennst - in solchen Fällen kann ich ja nachträglich kürzen :)

24.02.2006 02:07

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]