Forum Moderators: coopster
// remove any possible inections
foreach($values as $key => $input){
$values[$key] = cleaninjections($input);
}
// perform on each field of the form
function cleaninjections($test)
{
// Remove injected headers
$find = array("/bcc\:/i",
"/content\-type\:/i",
"/mime\-version\:/i",
"/cc\:/i",
"/from\:/i",
"/to\:/i",
"/content\-transfer\-encoding\:/i");
$ret = preg_replace($find, "", stripslashes($test));
return $ret;
}
function check_user_content($content) {
$injection_strings = array('apparently-to', 'cc', 'bcc', 'boundary', 'charset', 'content-disposition',
'content-type', 'content-transfer-encoding', 'errors-to', 'in-reply-to', 'message-id',
'mime-version', 'multipart/mixed', 'multipart/alternative', 'multipart/related',
'reply-to', 'x-mailer', 'x-sender', 'x-uidl');
foreach ($injection_strings as $junk) {
$check = strpos(strtolower($content), $junk);
if ($check !== false) {
return false;
}
}
return true;
}
}
"/\/r/i",
"/\/n/i",
"/%0a/i",
"/%0d/i") "/\/r/i",
"/\/n/i",
"/%0a/i",
"/%0d/i") if(!preg_match("/^[a-z '.]+$/i",$values['fname'])) where I test a first name entry? $find = array("/cc\:/i",
"/bcc\:/i",
"/to\:/i",
"/from\:/i",
"/Content\-Type\:/i",
"/Mime\-Version\:/i",
"/Content\-Transfer\-Encoding\:/i",
"/\r/m",
"/\n/m",
"/%0a/m",
"/%0d/m");
$ret = preg_replace($find, "", stripslashes($test));
return $ret;
}
function cleaninjections($test)
{
// Remove injected headers
$find = array("/cc\:/i",
"/bcc\:/i",
"/to\:/i",
"/from\:/i",
"/content\-type\:/i",
"/mime\-version\:/i",
"/content\-transfer\-encoding\:/i",
"/content\-disposition\:/i",
"/apparently\-to\:/i",
"/errors\-to\:/i",
"/in\-reply\-to\:/i",
"/reply\-to\:/i",
"/message\-id\:/i",
"/x\-mailer\:/i",
"/x\-sender\:/i",
"/x\-uidl\:/i"
);
$ret = preg_replace($find, "", stripslashes($test));
return $ret;
}
function cleanlines($test)
{
// Remove newlines and carriage returns
$find = array("/\r/m",
"/\n/m",
"/%0a/i",
"/%0d/i",
"/%08/",
"/%09/",
);
$ret = preg_replace($find, " ", stripslashes($test));
return $ret;
}