1

これをより安全にするために使用できる手順は何ですか?

<?php
foreach ($_POST as $field=>$value)
{
$formcontent .= "$field: $value\n";
}
$formcontent .= 'User-Agent: '.$_SERVER['HTTP_USER_AGENT'];


$recipient = "****.***y@***********.co.uk";
$subject = "Event feedback form";
$mailheader = "From: web.form@**********.co.uk\r\n";
$mailheader .= "Reply-To: $email\r\n";
$mailheader .= "MIME-Version: 1.0\r\n";


mail($recipient, $subject, $formcontent, $mailheader) or die("Failure!");
header("location:http://www.**********.co.uk");
?>
4

3 に答える 3

2

ここで推奨される答えを見てください:このmail()関数はヘッダーインジェクションから安全ですか?。データベースに保存したり、添付ファイルを使用したりしていないため、メールのヘッダーに新しい行が含まれる可能性があります。そこでそれらの指示に従うと、新しい行を除外でき、問題ありません。

お役に立てば幸いです。乾杯

于 2012-08-23T09:25:06.630 に答える
1

htmlspecialcharsを使用して、変数をサニタイズします。

于 2012-08-23T09:24:48.373 に答える
1

クロス サイト スクリプティングを防ぐために、 htmlentitiesを $value に適用することができます。

$formcontent .= "$field: " . htmlentites($value) . "\n";

それ以外の場合は、値が DB に入らないので問題ありません。

于 2012-08-23T09:23:59.970 に答える