我浏览了一些帖子,以了解防止各种形式的“注入(inject)”攻击的方法。
What's the best method for sanitizing user input with PHP?是一篇很棒的帖子,对数据库非常有帮助,但是我想做的一件事是防止我的邮件服务器被某人“注册”并使用一串逗号分隔的电子邮件地址向人们发送垃圾邮件。这是一个似乎不经常被讨论的话题。
是的,验证码(或同等内容)已就位,这更适合那些将一长串逗号分隔值剪切并粘贴到电子邮件字段中的讨厌用户。
我希望爆炸然后只取数组中的零元素是抛弃其余元素的最佳方法,但是如果有人有其他想法或方法,那么非常乐意阅读它们。
$emails_passed = explode(",", $_POST['email_field']); // could also use $_GET
$email_to = $emails_passed[0];
最佳答案
嗯,是的,你可以,但这样做并不明智。简单检查是否提供了有效的电子邮件,请参阅 php validation, first example用于一些基本的电子邮件验证。有效的电子邮件不包含逗号。
因此,如果它有逗号,则无效,因此您应该对用户说,请提供有效的电子邮件。认为比使用爆炸更好地解决问题
只有当您允许单个电子邮件 ( [email protected] ) 就像 Gumbo 在评论 the specs 中指出的那样时,上述故事才算数。允许在电子邮件中使用逗号。
因为您的问题是为了防止人们发送多封电子邮件,所以您向他们发送“垃圾邮件”。我仍然建议验证电子邮件并检查。
希望额外的信息,感谢 Gumbo 的帮助
关于php - 您可以使用 PHP Explode() 来帮助防御注入(inject)攻击吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17502412/