哪种是电子邮件验证的标准方法

时间:2014-06-02 08:53:05

标签: php mysql email-validation

我目前正在开展一个大型项目,客户要求所有内容都必须以标准方式完善,特别是在安全方面。有用户注册会话,我也必须添加电子邮件验证功能。

我在所有项目中都使用以下方法进行电子邮件验证。

  1. 在注册时,将数据保存到users表,其中status(状态列的值)为0,并生成随机code到该列的列。

  2. 然后使用随机code ans用户id作为获取变量发送指向已注册邮件ID的链接。 例如:http://site_address.com/verification_url.php?id=1&code=abc123xyz

  3. 在验证页面上,将get变量($_GET['code'])的值与传递给id($_GET['id'])的用户的数据库中保存的随机代码进行比较

  4. 如果两个代码相同,status将为set to 1并显示成功验证的消息。

  5. 请告诉我是否有普遍接受的电子邮件验证方法(保证安全性)。另外,我想知道我的方法的安全限制或问题,以便我可以解决这些问题。

2 个答案:

答案 0 :(得分:2)

我不会发送用户ID,否则你的方法可以正常工作。发送用户ID,告诉外面的世界你的数据库/代码设计的大部分内容。 创建强大的哈希作为代码和expiredate,你会没事的。

答案 1 :(得分:1)

请在下面查看,它可能对您有所帮助

  • 创建激活链接,如

    http://www.hostname.com/verification_url.php?id=base64_encode($id)&code=base64_encode($code)
    
  • 验证脚本

    <?php
    
    if(isset($_GET['id'])&&isset($_GET['code'])){
      $id = base64_decode($id);
      # your database connection code here
      # get email id using $id for mailing purpose
      if($id!=NULL){
        # update the user status as active and send success mail
      }
      else{
        # sent failure mail
      }
    }
    
    ?>