谁做过相关的记住密码的功能吗,我们知道HTTP是无状态的协议,现在知道的可以保存状态的方法可以使用cookie和session,如果用户初次登陆网站时,会向服务器发送表单提交的数据或许还会有cookie,因为session是存在服务器的,且时间有限,由此可以推断出当用户登陆成功时,关掉浏览器后,再次打开网站,因为上次已经登陆过了,所以不用再登陆,那么第二次登陆时,浏览器应该会提供一些标识让服务器知道自己是否已经登陆,那么这个标识的载体就可能是cookie了,那么密码是不是就存在cookie里了呢,因为cookie是存在客户端的,所以重要的信息不应该保存在cookie里,如果密码不存在cookie里,那么网站是如何知道这个浏览器是已经登陆过的呢?
个人的猜想是,每个用户都是唯一的,用户名+密码都能对应该唯一的一条记录,如果cookie直接把这两条信息传给服务器那么服务器就可以知道这个浏览器是否进行过登陆,又因为客户端不是很安全,所以客户端的cookie应该是在服务器经过一些加密处理过后然后再返回给浏览器的一个字符串,这个字符串在服务器里是对应着用户名和密码的,那么也就是把用户名和密码转成了一个字符串再返回存在cookie里?假如是这样,那么是不是能把别人电脑里的cookie取出来然后再到自己的电脑做一个HTTP请求然后把别人的cookie传到服务器从而达到免登陆的效果?
实际网站中的记住密码的功能都是怎么实现的呢? |