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;
}