有专门的注销页面的原因

有专门的注销页面的原因

问题描述:

在基于用户的网站中,网站使用类似“logout.php”的页面非常普遍,我甚至在我自己的项目中使用它们,但现在我想知道为什么。所以我的问题是:使用专用文件注销用户有什么特别的优势吗?这岂不是更加有组织任何适当类中只创建一个方法,如:有专门的注销页面的原因

下面是用PHP编写的(这是类似于我已经开始使用)为例:

public class Admin { 

    private function logout() { 
     $_SESSION[ADMIN_ACCESS_KEY] = null; 
     unset($_SESSION[ADMIN_ACCESS_KEY]); 
     return ($_SESSION[ADMIN_ACCESS_KEY]) ? false : true;  
    } 

} 

这个函数会被一些$ _POST或$ _GET变量触发,或者以其他方式触发。

我唯一的猜测是为什么它是如此受欢迎(谷歌,Facebook等,最后我做了这个检查)使用单个专用文件的注销过程,它可以简单地引导用户到页面(logout.php ),无论如何,只要页面加载并正确执行,它们将被注销。你能想到两种方法都有什么好处吗?

+0

'PHP框架'使用'方法'注销用户。 – 2013-04-10 06:20:39

+0

@YogeshSuthar哪个框架? – 2013-04-10 06:21:24

+1

也许所有的人,关键是 - 你会写这个方法和存储在任何你想要的,只是为了更好地描述,“website.com/logout”这里是注销是一种控制器的方法,如“用户”设置路由到他,检查什么是MVC,并开始我推荐CodeIgniter框架,他对新编码人友好 – MyMomSaysIamSpecial 2013-04-10 06:22:37

这不一定是它自己的文件。在大多数情况下,该网站正在运行一个MVC,其中url参数被解析为类方法。因此,尽管您正在访问host.com/account/logout - 您只需简单地以最简单的方式从account类(以其最简单的形式)调用logout()方法即可。

你会认为这可以通过在客户端删除cookie来完成,但最好的做法是也销毁服务器存储的会话,这样任何人都无法恢复(比如攻击者)

我能想到的最大优点是它允许开发人员保留<a href="logout.php">logout</a>类型的注销按钮,这些按钮不依赖于jquery或任何其他客户端JavaScript来注销。您只需将它们重定向/链接到另一个页面,该页面负责删除其会话数据。

它只是一个简单而简单的URL。有时候人们甚至更喜欢在URL中输入它,我知道我是这样做的!