我对验证电子邮件有一点不同的想法,而不是发送邮件到我的客户端,用唯一的消息来验证我的服务器,我不会发送他什么,但要求他发送邮件给我,然后我检查发件人和邮件中的唯一邮件,并验证该电子邮件。
用户基本上会点击一个按钮,新的邮箱将打开,所有数据已经填写完毕,他需要做的就是按发送。
我的问题是:首先这可以吗?第二,与具有所有缺点的官方方式相比,它有多安全。我只是想知道我是否没有开启任何新的安全风险。
答案 0 :(得分:1)
嗯,我在这里看到一点可用性问题和另一个安全问题。让我们按顺序讨论:
电子邮件验证的经典方式尤其是验证用户的电子邮件地址。换句话说,验证用户填写的地址是他/她的真实电子邮件地址。如果您想验证相同的内容,则必须“让您的用户”通过他/她的真实电子邮件地址向您发送电子邮件。因此,您可以使用“电子邮件”链接类型并填写您需要的所有内容,但如果用户位于Internet俱乐部或公共计算机上,该怎么办?他没有任何设置。或者如果他想稍后给你发邮件怎么办?然后怎样呢?这是一个可用性问题。另一个问题是,你让用户有效地写邮件(即使你填写了信息),这是一种额外的步骤。
安全问题。如果用户在其他人通过邮件发送的注册和电子邮件确认之间进行注册,该怎么办?
答案 1 :(得分:1)
因此,请不要使用标准“请点击此链接确认您的帐户”,您希望为用户在创建帐户时发送邮件?
我没有看到你的解决方案比原来的更好。如果内部信息正确,您必须收到大量邮件,然后您必须分析这些邮件。这意味着验证帐户的工作只在其他地方完成。
原文:您通过邮件发送网址,如果已打开则激活用户。例如,可以使用简单的servlet来实现逻辑。您可以在URL中加密用户的数据库条目,并且为servlet留下的所有内容都是简单的数据库查找。
你的:你通过邮件收到身份证明并通过邮件运行你的逻辑。
然而,一个可能的问题是修改发送邮件的地址是可行的。您永远无法确定发送给您的邮件背后是否确实存在mailaccount。另一个更危险的缺陷是,恶意用户可能会垃圾邮件您正在使用的邮件帐户。在原始解决方案中,任何传入的邮件都可以丢弃,但您必须存储和处理它们。
答案 2 :(得分:0)
您必须使用mailto:link在用户的计算机上启动默认电子邮件应用程序,因为如果您要从您的网站发送电子邮件,则您将不知道发件人地址。但是如果用户没有安装电子邮件应用程序怎么办?例如,用户使用Gmail等网络邮件?在这种情况下,这不起作用。
答案 3 :(得分:-1)
我会给你发一个代码:
$username = $_POST['username']; //This is your clients username
$id = $_POST['id']; // This is your client's id
$email = $_POST['email']; // Your user's email.
$yemail = ""; //Here type an email where you want user to send you a notification.
然后使用PHP Mail()函数,就是这样。