0

所以我使用 PHP 并在我的网站上有一个联系表。一旦用户填写表格并提交,它会向我发送一封电子邮件。我假设我一直在接收来自机器人的垃圾输入,如下所示。这是 的结果print_r($_REQUEST)。为简单起见,我删除了一些参数。

Array
(
   [name] => rycpufrwq
   [email] => raaszg@fqhzdm.com
   [company] => naCuklaLMab
   [website] => http://ujpbfhazkpzv.com/
   [message] => cBimwx  <a href=\"http://pxlahgqmdrhs.com/\">pxlahgqmdrhs</a>, [url=http://sjmbrhkycvbz.com/]sjmbrhkycvbz[/url], [link=http://rddqwgzwvrhv.com/]rddqwgzwvrhv[/link], http://csohvhsvdisc.com/
)

在这样的要求下,我不写 db 或任何东西。我只通过调用发送电子邮件mail()。具体来说,mail($to,$subject,$body,$headers)其中 $headers 是:

$headers="From:$email_from\r\nBcc:$email_bcc\r\nReply-To:$name<$email>\r\n";

$name 是 $_REQUEST['name'] 并且 $email 是 $_REQUEST['email'],但我删除了所有“\r”和“\n”(如果有的话),因为它们可以放置"\r\nCc:<a list of emails>"并且可以发送垃圾邮件使用我的域的电子邮件。

但是,对于我上面提到的输入,我在“电子邮件”字段下看不到“换行符”。因此,我认为这是一种不同的攻击。有什么我应该注意的吗?

4

1 回答 1

2

因此,我认为这是一种不同的攻击。

我对此表示怀疑。这看起来不像是电子邮件注入攻击,而是一个简单的普通机器人,它试图将其内容链接到尽可能多的地方(例如评论线程)。这就是[link] 符号存在的原因,以使 URL 在 BBCode 中链接。

除了它是垃圾之外,我在消息中看不到任何恶意。

正如其他人所说,为了阻止这种情况,验证码解决方案是最流行的方式;还有其他人。请参阅有关 SO 的相关问题,例如Blocking comment spam without using captcha

于 2010-11-08T09:42:58.520 回答