你能使用PHP Explode()来帮助抵御注入攻击吗?

时间:2013-07-06 11:16:46

标签: php forms security code-injection spam

我一直在浏览几篇文章,看看如何防范各种形式的“注射”攻击。

What's the best method for sanitizing user input with PHP?是一个非常棒的帖子,对数据库非常有帮助,但是我想做的一件事就是防止我的邮件服务器被某人'注册'使用并使用逗号分隔的电子邮件收件人字符串垃圾邮件的人。这是一个似乎没有经常看到的主题。

是的,Captcha(或等效的)已经到位,对于那些在电子邮件字段中剪切和粘贴一长串逗号分隔值的讨厌用户来说更是如此。

我希望爆炸然后只接受数组中的零元素将是抛弃其余部分的最佳方式,但是如果任何人有其他想法或方法,那么非常乐意阅读它们。

$emails_passed = explode(",", $_POST['email_field']); // could also use $_GET
$email_to = $emails_passed[0];

1 个答案:

答案 0 :(得分:3)

嗯,是的,你可以,但这样做并不明智。只需检查是否提供了有效的电子邮件,请参阅php validation, first example以获取一些基本的电子邮件验证。有效的电子邮件不包含逗号。

因此,如果它有逗号,则无效,因此您应该对用户说,请提供有效的电子邮件。认为以更好的方式解决问题然后使用爆炸

上述故事仅适用于您允许单个电子邮件(foo@bar.com),例如Gumbo在评论中指出the specs允许在电子邮件中使用逗号。

因为您的问题是要阻止人们发送多封电子邮件,以便您发送垃圾邮件"他们。我仍然建议验证电子邮件并检查。

希望额外的信息,感谢Gumbo帮助