1

所以我在网上得到了这个“联系我们”表单的 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 中包含的电子邮件地址对于爬虫来说是完全安全的,因为它都是服务器端的(假设您的服务器/站点是安全的)。不知道这是否属实,网上搜了这么多信息,我找不到确切的答案。如果有人可以确认此代码是否可以安全使用,那就太好了,谢谢!

4

4 回答 4

1

除非他们有权访问该文件并阅读它,否则你很好。他们无法做到。就像你说的,这都是服务器端。

于 2013-01-17T02:58:22.807 回答
1

该地址是安全的,除非文件以纯文本形式提供并且是可读的(如肖恩所说),但您应该阅读电子邮件注入攻击,因为您很容易受到这些攻击。

于 2013-01-17T03:04:46.130 回答
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;
}
于 2013-01-17T03:13:46.750 回答
0

简单的回答,你是安全的。因为 PHP 元素只会在服务器上处理,因此任何人都无法看到您的电子邮件地址。

于 2013-01-17T04:25:35.350 回答