当前位置:  开发笔记 > 编程语言 > 正文

这段代码安全吗?

如何解决《这段代码安全吗?》经验,为你挑选了1个好方法。

当您注销时,首先,您正在排队 cookie的破坏(它将在发送响应后发生),然后在呈现您的页面之后立即排队.浏览器在渲染之前没有机会删除cookie,并且您的$_SESSION变量仍然存在.

PHP文档说session_destroy:

session_destroy()销毁与当前会话关联的所有数据.它不会取消设置与会话关联的任何全局变量,也不会取消设置会话cookie.

一个解决方案是,而不是破坏会话和cookie,只需取消设置将导致身份验证的变量:

unset($_SESSION['user']);
unset($_SESSION['lastActive']);
unset($_SESSION['fingerprint']);

请注意:我建议将代码拆分为函数.这将使它更有条理和可读(如果你做对了就可以重复使用).



1> strager..:

当您注销时,首先,您正在排队 cookie的破坏(它将在发送响应后发生),然后在呈现您的页面之后立即排队.浏览器在渲染之前没有机会删除cookie,并且您的$_SESSION变量仍然存在.

PHP文档说session_destroy:

session_destroy()销毁与当前会话关联的所有数据.它不会取消设置与会话关联的任何全局变量,也不会取消设置会话cookie.

一个解决方案是,而不是破坏会话和cookie,只需取消设置将导致身份验证的变量:

unset($_SESSION['user']);
unset($_SESSION['lastActive']);
unset($_SESSION['fingerprint']);

请注意:我建议将代码拆分为函数.这将使它更有条理和可读(如果你做对了就可以重复使用).

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有