我有一个简单的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);