gpt4 book ai didi

PHP Secure E-mails

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 10011 100
gpt4 key购买 nike

$message = $_REQUEST[ message
mail( someone@example.com , Subject: $subject ,
$message, From: $email );
echo Thank you for using our mail form
}
else
//if email is not filled out, display the form
{
echo form method= post action= mailform.php
Email: input name= email type= text br
Subject: input name= subject type= text br
Message: br
textarea name= message rows= 15 cols= 40
/textarea br
input type= submit
/form
}
?

/body
/html 以上代码存在的问题是,未经授权的用户可通过输入表单在邮件头部插入数据。

假如用户在表单中的输入框内加入如下文本到电子邮件中,会出现什么情况呢?


someone@example.com%0ACc:person2@example.com
%0ABcc:person3@example.com,person3@example.com,
anotherperson4@example.com,person5@example.com
%0ABTo:person6@example.com 与往常一样,mail() 函数把上面的文本放入邮件头部,那么现在头部有了额外的 Cc:、Bcc: 和 To: 字段。当用户点击提交按钮时,这封 e-mail 会被发送到上面所有的地址!


下面的代码与上一章中的类似,不过这里我们已经增加了检测表单中 email 字段的输入验证程序:


//address using FILTER_SANITIZE_EMAIL
$field=filter_var($field, FILTER_SANITIZE_EMAIL);

//filter_var() validates the e-mail
//address using FILTER_VALIDATE_EMAIL
if(filter_var($field, FILTER_VALIDATE_EMAIL))
{
return TRUE;
}
else
{
return FALSE;
}
}

if (isset($_REQUEST[ email ]))
{//if email is filled out, proceed

//check if the email address is invalid
$mailcheck = spamcheck($_REQUEST[ email
if ($mailcheck==FALSE)
{
echo Invalid input
}
else
{//send email
$email = $_REQUEST[ email
$subject = $_REQUEST[ subject
$message = $_REQUEST[ message
mail( someone@example.com , Subject: $subject ,
$message, From: $email );
echo Thank you for using our mail form
}
}
else
{//if email is not filled out, display the form
echo form method= post action= mailform.php
Email: input name= email type= text br
Subject: input name= subject type= text br
Message: br
textarea name= message rows= 15 cols= 40
/textarea br
input type= submit
/form
}
?

/body
/html 在上面的代码中,我们使用了 PHP 过滤器来对输入进行验证:

10011 100 3
文章推荐: PHP 异常处理
文章推荐: PHP 发送电子邮件
文章推荐: PHP Sessions
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com