2011-11-15 59 views
0

假设我在用户计算机上存储了一个cookie,当他回来时,我检查他是否有cookie并将他重定向到安全页面(我知道这是不安全的,因为cookie可能在计算机上伪造,但这只是一个理论问题)服务器在使用cookie时如何知道用户信息?

服务器如何知道所有的用户信息/密码,因为我只是基于存储在计算机上的cookie重定向用户?

+0

如果你正确地做了这件事,你就不能伪造一个cookie ... – Esailija

回答

1

您可以将Cookie与存储在文件或数据库中的其他数据绑定。

例如,cookie可以包含一个漫长而难以猜测的唯一密钥,该密钥在登录时被插入users表中的用户记录旁边。您的代码将检查cookie值,然后查询表中的匹配用户。钥匙应该定期更换。

但是,您可以使用会话,将Cookie与存储在服务器上的文件关联起来。会话处理通常保留给较短持续时间的活动,例如在线商店的结帐过程。

PHP可以自动执行大部分会话功能。

http://www.php.net/manual/en/intro.session.php

你会想用这类技术时,研究安全隐患(会话劫持)。

+0

'2 follow up question' a)当我检查cookie值并查询匹配用户表时,我可以登录他,做什么如果存储的密码是盐渍的,我会这样做。我是否需要密码,因为我可以将用户重定向到所有其他信息的安全页面?如果我确实需要访问用户密码怎么办? b)在securepage上,我应该检查是否设置了用户和cookie变量,即使我在php中使用session_start?只是为了确保访问安全页面的用户有会话或cookie集? (不希望随机访问安全页面) – CodeCrack

0

通常,服务器保存所有用户会话数据的副本并为其提供唯一ID。 cookie本身只保存该ID的副本。当cookie被呈现给服务器并且session_start被调用时,PHP使用cookie中的ID来恢复正确的会话。

+0

因此,如果cookie在两台服务器上具有相同的名称,并且当它存储在用户的本地计算机上时,它如何不被覆盖? – CodeCrack

相关问题