die beste Methode ist, für jede Eingabe einen genauen REGEX zu erstellen und alles nicht-konforme aus der Eingabe herauszulöschen.
Ein Paar Beispiele:
CODE function numbers_only($string)
{
return preg_replace("#[^0-9]#", "", $string);
}
function IsDate($input)
{
$input = preg_replace("#^\-[^0-9]#", "", $input);
$input = explode("-",$input);
$Year = $input[0];
$Month = $input[1];
$Day = $input[2];
return checkdate( $Month, $Day, $Year );
}
function MakeName($input)
{
$pattern = '/([[:digit:]]|[~`!@#$%^&*\(\)_=\+{}\|\\:;<>"\/?,]|\[|\]|-)+/';
return preg_replace($pattern,"", stripslashes($input));
}
function MakeTel($input)
{
$pattern = '#^\+^\(^\)[^0-9]#';
return preg_replace($pattern,"", stripslashes($input));
}
function MakeAddress($input)
{
$pattern = '/[~`!@#$%^&*\(\)_=\+{}\|\\:;<>"\/?,]|\[|\]/';
return preg_replace($pattern,"", stripslashes($input));
}
function MakeEmail($input)
{
$pattern = '/[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)*\@[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)+/i';
return preg_replace($pattern,"", stripslashes($input));
}
function MakeText($input)
{
$pattern = '/[~`@#$%^&*_=\+{}\|\\<>"\/]|\[|\]/';
return preg_replace($pattern,"", stripslashes($input));
}
Mod Security auf dem Server bietet auch guten Schutz vor GPC Angriffen