Hallo dedlfix,
Mir ist nicht bekannt, dass mail() mit Nicht-ASCII-Zeichen umgehen und diese in Punycode wandeln könnte. Wenn dein SMTP-Server das auch nicht kann, müsstest du diese Verwendung ebenfalls unterbinden oder selbst eingreifen.
Das klingt logisch. Besteht hier eine Angriffsmöglichkeit? Wenn ja: Gibt es eine einfache Regel, um dies zu vermeiden? Das Verbieten aller Zeichencodes über 127 wird allerdings wohl auch dazu führen, dass E-Mail-Adressen der Form "mäxchen@example.com" nicht funktionieren - und die würde ich ungerne ausschließen wollen.
Wenn diese Regel eingefügt wird sieht meine Funktion übrigens derzeit wie folgt aus:
function testMail($str) {
if (!is_string($str) || strlen($str) > 255) {
// variable must be a string with a max. length of 255
return false;
} else if (strpos($str, '@') === false) {
// there must be an @
return false;
} else {
// check for invalid characters
for ($i = 0; $i < strlen($str); $i++) {
$c = $str[$i];
$cCode = ord($c);
if ($cCode < 32) {
// control characters not allowed
return false;
}
if (strpos('<>,;', $c) !== FALSE) {
// invalid characters
return false;
}
if ($cCode > 127) {
// non-ascii characters not allowed
return false;
}
}
}
return true;
}
Grüße
Marc Reichelt || http://www.marcreichelt.de/
--
DPRINTK("Last time you were disconnected, how about now?");
linux-2.6.6/drivers/net/tokenring/ibmtr.c
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
DPRINTK("Last time you were disconnected, how about now?");
linux-2.6.6/drivers/net/tokenring/ibmtr.c
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)