web-dev-qa-db-ja.com

phpによって作成されたすべての送信メールをログに記録します

いくつかのPHPサイトにサービスを提供するDebianLinuxサーバーがあります。今日、データセンターから、サーバーがスパムと添付されたスパムメッセージを送信しているというメールを受け取りました。これは本当に私のサーバーからのメッセージであり、なんとかしてexim4メインログで見つけてください。質問:PHPコードの脆弱性はどこにあり、どのサイト(私は3つあります)がこのメールを送信しますか?私はすでに1つのサイトをchrootし、phpメールを無効にしましたexec、systemなどはすべて機能しますが、サイトがメールを送信しているのかわかりません。すべての送信メールのメッセージ本文をログに記録する方法はありますか?

1
Dmytro Leonenko

より多くのロギングを行うsendmailのラッパーを作成して構成できます

php.iniの場合:

sendmail_path = /usr/sbin/sendmail -t -i

への変更:

sendmail_path = /usr/local/bin/myscript

または、phpコードで、ロギングを行うphpメールのラッパーとして機能する独自のメール関数を作成できます。すべての入力を検証することを忘れないでください。

3
jamespo