HTML5表单和PHP邮件()注入


HTML5 Form and PHP mail() Injection

我有一个简单的HTML页面表单。表单有一个必需的电子邮件输入类型和一个提交按钮。我只需要把邮件发送到某个地方。就像订阅按钮。

我使用PHP mail()函数将电子邮件发送到我的个人电子邮件地址。

mail($to, $subject, $message, $additional_headers);
你认为我在这种情况下会有什么问题吗?我应该使用PHP Mailer吗?

我读了关于电子邮件注入的文章,但是当我测试表单时,我没有看到任何问题。我认为HTML5的电子邮件类型不允许你插入任何其他字符来垃圾字段。

我将使用验证码,这样我就不会被机器人垃圾邮件。不再使用

很抱歉发布这个,有这么多(旧)的主题关于电子邮件注入,但没有人与HTML5。如果我是对的,我真的不需要测试邮件注入。我正在寻找一个非常简单和简短的代码。

编辑:

所以我得到了太多的帮助,我真的很困惑。我只有一个简单的HTML页面与电子邮件输入字段。我想把那封邮件发送到我的邮箱。

所以我不需要使用htmlspecialchars(),因为我只使用用户输入的$message$headers。我将使用preg_match( "/['r'n]/", $_POST['email'])来检查是否将额外的字段(如CC和BCC)注入到header中。

在我的情况下,考虑到我只使用mail()函数,我是否会受到CSRF攻击或任何我应该关注的其他攻击?

为了确保获得安全消息,必须应用一些过滤器:

<?php
$message = strip_tags( $message ); 
$subject = strip_tags( $subject );
mail($to, $subject, $message, $additional_headers);