2015-05-04 33 views
0

我想了解如何在网站上进行身份验证。我不是要求代码,我试图理解这个概念。当用户第一次访问网站时,他/她会登录,我的服务器会对其进行身份验证。但是当用户移动到下一页时,由于http是无状态的,服务器如何知道当前用户是已登录的同一用户?第一次请求后如何进行身份验证?

我想到了几种方法,如下所示,但我不相信他们会完美地工作。对于插件,它们可能效率不高。

  • 发送userid/password在每个请求 - 非常糟糕的设计,因为用户名/密码可以被黑客攻击!
  • 使用cookies - 它也有缺陷,用户可以将cookie发送给他/她的朋友,然后我的服务器将处于模糊状态:

有没有更好的方法来认证用户后续请求?

注意:我不能使用https协议,因为它是慢http也有一些商业上的原因。

回答

0

您可以使用一个持有会话应持续多长时间的令牌。并且该令牌将随每个请求一起发送(您要使用它)并且被验证@服务器。

我想令牌好的帖子是这个:What is token based authentication?

+0

的朋友可以访问来自用户计算机(类似饼干)令牌或通过网络?如果是,那么这可能没有用:|。我的意思是,假设令牌是'abcd',那么黑客可以通过Web请求向服务器发送相同的令牌并掩盖用户的身份,不是吗? – Abhishek

+0

从计算机可能是的,如果你使用HTTPS,那么网络应该是安全的。令牌可能包含用户的IP,以确保相同的令牌不能从另一个网络使用。 –

+0

如果可以从计算机复制,那么它是不安全的,类似于cookie。我们不能使用ip,因为ip可以被屏蔽:|。在这里,我假设用户想破解/入侵我的服务器。 'https'是一个选项,但不是解决方案,对吧?无论如何,我不能使用HTTPS我的问题:( – Abhishek

相关问题