Php 停留在现场时保持登录状态

Php 停留在现场时保持登录状态,php,session,cookies,Php,Session,Cookies,我想在我的网站上创建一个登录表单。如果用户登录,我希望他 1.在他停留在我的站点时保持登录 2.关闭浏览器并重新启动计算机后保持登录状态 我可以使用什么技术?我正在使用PHP5.2编写网站。塔克斯 登录表单背后的基本思想是在用户登录时验证凭据,并设置cookie以在加载新页面时记住凭据 您可以检查setcookie方法(http://us.php.net/setcookie)学习如何设置cookie 您还可以查看会话(http://us.php.net/manual/en/function.se

我想在我的网站上创建一个登录表单。如果用户登录,我希望他 1.在他停留在我的站点时保持登录 2.关闭浏览器并重新启动计算机后保持登录状态


我可以使用什么技术?我正在使用PHP5.2编写网站。塔克斯

登录表单背后的基本思想是在用户登录时验证凭据,并设置cookie以在加载新页面时记住凭据

您可以检查setcookie方法(http://us.php.net/setcookie)学习如何设置cookie

您还可以查看会话(http://us.php.net/manual/en/function.session-start.php)这是一种为特定用户在服务器端存储数据的方法

以下文章将让您更好地了解如何编写登录表单:

编辑:正如John指出的,在向页面添加登录时,存在许多安全问题。您应该知道cookie可能被劫持,会话可能被盗

防止这种情况的一些技巧:

  • 确保人们无法将JavaScript注入您的页面。例如:
  • 您应该在需要登录的页面上使用HTTPS连接,因为这将防止通过不受保护的连接窃取cookie
  • 如果源IP已更改,您可能希望使cookie无效,以防cookie被盗
希望这有帮助

  • 基督教徒

只要网络浏览器打开,会话就会保持。关闭后,会话将终止

另一方面,只要你告诉他们,饼干就会留下来

您可以在以下网址阅读这些信息:

会议:

曲奇饼:

将此迁移到StackOverflow可能与的重复我希望看到此答案更新为使用此功能(如劫持Cookie等)的安全后果。您应该在所有页面上使用https连接;如果切换回http,初次登录后cookie仍然很容易被盗。请参阅firefox扩展的示例,以实现这一点。此外,您应该在Cookie中存储绝对最小值;与安全无关。所以不要像OP建议的那样使用setcookie;改用会话方法,cookie中将只存储唯一的会话标识符;设置httponly标志,确保仅通过Cookie传输会话id(而不是通过URL),确保仅通过https传输会话Cookie,在用户通过身份验证时使用会话_REGENATE_id(),以防止会话固定攻击。您还可以通过存储一些请求头来添加一些简单的会话劫持检测(如HTTP_用户_代理和可能的IP地址)将原始请求添加到会话中。将所有未来请求与原始请求(或它们的散列)进行比较如果它们不匹配,则要求用户重新验证。抱歉,您完全错了。会话在服务器上指定的超时后终止,或者如果在服务器上显式终止。如果客户端删除会话cookie,它们可能会丢失对会话的引用,这有时会发生(取决于设置)当浏览器关闭时,即使会话仍在服务器上运行,也只是引用丢失了。tizag.com上就是这么说的,我猜他们错了,或者只是过时了。。。