【问题标题】:Stopping a rogue PHP script sending E-Mail停止发送电子邮件的恶意 PHP 脚本
【发布时间】:2012-03-21 22:44:47
【问题描述】:

请不要笑我,但我相信我只是做了一些非常愚蠢的事情。我正在为我正在开发的网站设置时事通讯,但在出现拼写错误时,我首先尝试了它。在扫描整个数据库并发送电子邮件时,我搞砸了使它停止的部分。我修复了代码,但电子邮件仍在发送(给我妈妈:O),而且它们似乎没有停止。

这是我执行时的脚本:

$message = $_POST['emailmessage'];
$subject = $_POST['subject'];
$query = mysql_query("SELECT `email` FROM `members` WHERE `active`='1'");
//This line underneath should not be there
$rows = mysql_fetch_assoc($query);
$headers = array(
    "From: contact@thestopitcampaign.com",
    "Content-Type: text/html"
);
//should be '$rows = mysql_fetch_assoc($query)' instead of '$rows'
while($rows)
{
    mail($rows['email'],$subject,$message,implode("\r\n",$headers));
    echo "<p>Sent to: " . $rows['email'] . "</p>";
}

我联系 FatCow 想看看他们是否可以停止脚本,但他们说他们不能这样做,他们必须删除我的整个帐户并将我放在不同的服务器上。我不能这样做。无论如何都会产生错误或会使流氓脚本停止的东西?仅供参考,我没有 SSH 访问权限。

--我查看了我的 php 配置文件,脚本的超时时间为 300 秒。这似乎有很多电子邮件要发送。有没有办法阻止这些电子邮件?

【问题讨论】:

  • FatCow 不为其客户端提供 SSH 访问权限。

标签: php web kill terminate


【解决方案1】:

已发送的内容无法再停止。但它不会永远运行,可能已经停止。

如果服务器没有被提供商严重错误配置,您的脚本运行时间不会超过某个时间限制,例如60 秒。即使消息继续通过,它也可能不再运行,但邮件服务器正在花时间处理它创建的所有消息。

我会拭目以待 - 洪水可能很快就会结束。

提供商所说的将帐户转移到不同的服务器似乎根本没有任何意义 - 如果有一个流氓进程正在发送电子邮件,他们应该能够轻松杀死它。但无论如何……我会等的。

【讨论】:

  • 是的,我想我得等一下,只是脚本根据配置文件运行了 300 秒,所以这将是很多电子邮件。
  • @Keiran 是的,这可能是相当多的一批。没什么可做的,但等待它...(当然,如果您的妈妈使用桌面电子邮件客户端,请设置过滤规则以自动删除传入的邮件,这样她就不会淹没在其中:)
  • 是的,我已经有了过滤和删除它们的规则,只是它进入了她的垃圾箱,所以它们仍然在那里。
【解决方案2】:

我的猜测是电子邮件刚刚排队,最终应该停止,因为 php 脚本在页面停止加载后不会继续执行。

我建议您使用像 mailchimp 这样的时事通讯提供商,因为它们更可靠、更安全且服务易于集成到您的网站中。

希望有帮助!

【讨论】:

  • 脚本在服务器上运行的最长时间为 300 秒。这不是很长吗?我认为电子邮件可能会消失一段时间。使用邮件黑猩猩,是否可以从 mysql 数据库中获取我的成员的电子邮件地址并使用它?
  • 您的意思是,是否可以从您的数据库中导入它们?如果是这样,您可能可以生成 xml、csv 或 excel 文件以导入到 mailchimp。但是据我所知,您无法将数据库中的电子邮件动态地提供给 mailchimp。然后,您可能应该使用自己的解决方案。
猜你喜欢
  • 1970-01-01
  • 2011-09-16
  • 1970-01-01
  • 2012-10-08
  • 2012-09-12
  • 1970-01-01
  • 2012-09-12
  • 2011-04-28
相关资源
最近更新 更多