0

私は最初の連絡先フォームの作成に取り組んでいます。

多くのフィールドを持つこれに似たページがあります... http://www.missingpeople.org.uk/component/option,com_rsform/Itemid,144/lang,en/view,rsform/

フォームが送信されると、次を含むプロセス ページにリダイレクトされます...

<?php

foreach ($_POST as $key => $value)
$message .= "Field ".htmlspecialchars($key)." is ".htmlspecialchars($value)."\r\n";

mail('liam@site.co.uk', 'sghting', $message); 

?>

これは注射に対して脆弱であるように見えますが、私がプロセスについて読んでいるものから?これが素朴に聞こえる場合は申し訳ありませんが、このプロセスは初めてです。私が求めているのは、このコードのサニタイズについてどこから読み始めればよいですか?

4

2 に答える 2

1

脆弱である可能性があります-SQLインジェクションに対してではありません。mailはかなり生のインターフェースで、メール配信システムに物を渡すだけです。適切にエスケープしないと、メールヘッダーをメッセージに挿入するのは簡単です。このように、攻撃者はあなたのメール フォームを使用して、スパムや送信者のなりすましを行う可能性があります。

これを自分でやろうとする代わりに、Swift メーラーなどのライブラリを使用することを強くお勧めします。

http://swiftmailer.org/

于 2012-11-05T15:11:50.397 に答える
0

単一引用符とセミコロンを簡単に挿入して独自のコードを実行できるため、SQL クエリの場合は危険ですが、メールを送信する場合はそうではありません。後でその電子メールをデータベースに保存すると、SQL インジェクションに対して脆弱になる可能性があります。

この値を実行してhtmlentities()、コンテンツを HTML エンコードすることができます。これは、電子メールには問題なく、ほとんどの特殊文字が削除されます。

于 2012-11-05T14:26:07.970 に答える