所以我在线获得了“联系我们”表单的PHP代码(我自己不编写PHP代码),但它包含我的电子邮件地址。以下表单是否可以使我的电子邮件免受垃圾邮件发送者的侵害?
contact.php文件(真实电子邮件已被MYEMAIL@COMPANY.COM取代):
<?php
// Contact Form
// Get posted data into local variables
$EmailFrom = Trim(stripslashes($_POST['EmailFrom']));
$EmailTo = "MYEMAIL@COMPANY.COM";
$Subject = "A User Has Contacted You";
$Name = Trim(stripslashes($_POST['Name']));
$Message = Trim(stripslashes($_POST['Message']));
// Validation
$validationOK=true;
if (Trim($EmailFrom)=="") $validationOK=false;
if (Trim($Name)=="") $validationOK=false;
if (Trim($Message)=="") $validationOK=false;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}
// Prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "\n";
// Send E-Mail
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
// Redirect to Success page
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=success.htm\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>
html片段:
<form method="POST" action="contact.php">
...
</form>
我已经读过PHP中包含的电子邮件地址对于爬虫是完全安全的,因为它是所有服务器端(假设您的服务器/站点是安全的)。不确定这是不是真的,那里有太多的信息我在网上搜索后找不到明确的答案。如果有人可以确认这个代码是否可以安全使用,那就太好了,谢谢!
答案 0 :(得分:1)
除非他们有权访问该文件并阅读,否则你没事。他们无法得到它。像你说的那样,这都是服务器端。
答案 1 :(得分:1)
地址是安全的,除非文件以纯文本形式提供并且可读(如Sean所说),但你应该阅读email injection attacks,因为你很容易受到这些攻击。< / p>
答案 2 :(得分:1)
您的电子邮件受到保护,因为它是所有服务器端,除非他有fpt访问您的网站或您有某种类型的漏洞。
此外,您可能需要考虑这样的事情以防止洪水泛滥。
session_start()
define('TIME_INTERVAL', 120);
if(isset($_SESSION['ip']) && (time() - $_SESSION['last_post']) < TIME_INTERVAL)
}
die('stop spamming !');
{
$_SESSION['last_post'] = time();
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
另外,关于您的电子邮件验证,您可能需要查看一下,这也会验证电子邮件的域名,看它是否是现有的电子邮件服务器。
function validate_mail($email)
{
if (filter_var($email, FILTER_VALIDATE_EMAIL))
{
list($username,$domain)=split('@',$email);
if(checkdnsrr($domain,'MX'))
{
return true;
}
}
return false;
}
答案 3 :(得分:0)
简单回答,你很安全。因为PHP元素只会在服务器上处理,所以任何人都无法看到您的电子邮件地址。