我想出了以下脚本来清理我的 php 邮件联系表格。想知道是否还有其他建议我应该放在这里。这只是代码的一个片段,因为我还预先匹配每个字段以只允许允许的字符,但就从一开始就清理注入而言 - 关于更改的任何建议?
我意识到我没有包含 /r、/n、%0a 和 %0d,但是当我这样做时,它会在我发布给自己并在那些字段上包含“错误”和“无效”评论时创建一个问题有包括原件在内的错误,因此可以更正它们,而且我想允许在表单的注释“文本区域”中输入和换行。
// 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;
}