-1

在基于用户的网站中,网站使用“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),他们会无论如何都要注销,前提是页面加载并正确执行。你能想到这两种方法有什么好处吗?

4

2 回答 2

1

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

您认为这可以通过简单地删除客户端的 cookie 来使用 JavaScript 完成,但最佳做法是也销毁服务器存储的会话,因此任何人都无法恢复它(如攻击者)

于 2013-04-10T06:23:47.030 回答
0

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

它只是一个简单明了的 URL。有时人们甚至更喜欢在 URL 中输入它,我知道我愿意!

于 2013-04-10T06:29:49.430 回答