2011-07-07 51 views
0

假设您有一个网站A和一些注册使用该网站的用户B.如果您在网站更新时向该用户发送电子邮件更新,是否有办法让用户登录该网站。比方说,例如,您在电子邮件中发送给他的链接,他需要登录才能查看,所以有什么方法可以在访问链接时自动登录此用户,而不是他必须输入他的链接用户名和密码了。显然,在URL中发送用户名和密码并不安全,所以在寻找其他想法。任何帮助深表感谢。让用户通过URL登录

回答

1

你可以存储,当他们在已登录的用户机器上的cookie(如果勾选了“让我登录”或东西)。

这样,如果您在用户返回到您的网站时发现cookie,就会知道您可以“登录”。

但是:

的Cookie是每台计算机 - 这意味着它并不一定是同一人谁将会在你的网站从机抵达。

你或许应该只给足够的权限来迎接按名称访问他们的私人信息,或者要求支付等应该要求他们重新输入他们的用户名和密码,或什么的,但任何事情。

另外,只要让电子邮件将用户引导到一个页面,该页面又会重定向到登录页面(但会在他们尝试去的会话中记住),并且只要他们登录,就把它们带到正确的目标页面。如果他们要求他们的浏览器在您的网站上存储用户名/密码,这将是一件微不足道的事情。

不要低估多少用户可以怎么样的感觉,你自己的安全,以及您的网站的用户友好性照顾。这两件事可能是一种折衷,重要的是不要让平衡过度到结束。

+0

感谢您的回复。非常有用的信息。 – kushaldsouza

1

我不知道如何安全的,这是,但如何对某种哈希的?

website.com?lh=2sdsdk... 

,你会发现你的用户有这样的:

SELECT * FROM users WHERE MD5 (concat (id,'salt',email))='$_GET[lh]' 

您生成

$hash = md5($user->id.'salt'.$user->email); 

散列但我完全不知道这种想法有多安全,它可能需要大量的资源用户表,所以对此的任何意见都更受欢迎。

+0

我也考虑过这个问题,但我不确定这会是多么安全。 – kushaldsouza

+0

我认为md5将是安全的。大多数网站使用上述技巧。您可以将电子邮件/用户名添加到网址。使用这个找到特定的记录,然后比较md5散列。 – balki

+1

它的安全性不是很好,好吧 - 你不会直接泄露用户名和密码,所以有人无法阅读我的肩膀上的电子邮件,并转到他们的电脑并登录到我的帐户在您的网站上。但是,如果他们能够访问我的电子邮件(比如说,我可以在办公室停留两分钟,他们可以记下链接,将电子邮件转发给自己,或者只是简单地插入我的网络邮件或其他东西),他们可以轻松访问我的帐户在您的网站上,他们可以将密码更改为其他内容,因此我无法再以我的身份登录,而且他们可以 - 因此我的帐户被盗。 – Codecraft