Apache-2.2

查找發送郵件的 php 腳本

  • August 30, 2017

有什麼方法可以讓我找到發送電子郵件的 php 腳本。

我在“標準”安裝中有 apache+php(既沒有 mod_suphp 也沒有 suexec),我想找出女巫 php 腳本正在發送電子郵件,當我檢查日誌時,我只看到發送電子郵件的使用者的 uid(在我的案例 apache ),但我想找出發起電子郵件的腳本。

是否有可能或者我必須安裝 suexec 或 mod_suphp 以保持跟踪?

感謝您的幫助。

php 5.3 被插入以獲得更好的郵件跟踪,但我不確定是否發生了這種情況。(編輯:是的 php 5.3 現在內置了日誌記錄 - php.ini 具有配置變數 mail.log,它將記錄來自 php 程式碼的郵件的使用。)

我們通過使 sendmail 成為一個包裝 shell 腳本解決了這個問題。

在 php.ini 中設置一個新的郵件程序。例如:

sendmail_path = /usr/local/bin/sendmail-php -t -i

sendmail-php 腳本只是簡單地使用 logger 來獲取資訊,然後呼叫系統的 sendmail:

#!/bin/bash

logger -p mail.info -t sendmail-php "site=${HTTP_HOST}, client=${REMOTE_ADDR}, script=${SCRIPT_NAME}, filename=${SCRIPT_FILENAME}, docroot=${DOCUMENT_ROOT}, pwd=${PWD}, uid=${UID}, user=$(whoami)"

/usr/sbin/sendmail -t -i $*

這將記錄到您在 syslog.conf 文件中設置的任何 mail.info。

另一個建議是安裝 suhosin php 擴展以收緊 PHP 中的漏洞,除非您執行的是 Debian 或 Ubuntu,而這已經是預設設置。

引用自:https://serverfault.com/questions/130069