gpt4 book ai didi

drupal - 使 Drupal cookie 过期的简单代码?

转载 作者:行者123 更新时间:2023-12-01 01:34:18 24 4
gpt4 key购买 nike

只需单击一下,这个简单的脚本将执行多次注销:

表情包

埃尔格

2 MyBB 和

(不是)Drupal。

    <?php
setcookie( 'Elgg', '', -3600, '/', '.domain.com', false, false);
setcookie( 'http_auth_ext_complete', '1', -3600, '/d/', '.domain.com', false, false);
// setcookie( 'http_auth_ext_complete', '1', -3600, '/d/', 'domain.com', false, false);
setcookie( 'mybbuser', '', -3600, '/', '.domain.com', false, false);
setcookie( 'mybbuser', '', -3600, '/bb/', '.domain.com', false, false);

// unset all 3 Moodle cookies, the lazy way
if (isset($_SERVER['HTTP_COOKIE'])) {
$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
foreach($cookies as $cookie) {
$parts = explode('=', $cookie);
$name = trim($parts[0]);
setcookie($name, '', time()-1000);
setcookie($name, '', time()-1000, '/');
}
}

?>

这适用于四个站点,但 Drupal cookie 不会退出。我怎样才能用 Drupal 做同样的事情?

注意:Drupal 使用 'host' 而不是 'domain',无论有没有 '.'到目前为止工作。

谢谢你。

编辑:
我确定 cookie 两次具有“Host domain.com”并且在另一次登录时使用了更标准的格式“Domain .domain.com”

名为“http_auth_ext_complete”的 cookie 即将过期 而且我仍然登录。Drupal 使用第二个 cookie,将 session ID 作为 cookie 名称 + session 数据库表中也有一个匹配的条目。

最佳答案

Drupal 使用的 session cookie 的名称不是常量,而是基于特定 Drupal 安装的 cookie 域的 MD5 哈希值构建的 - 参见 conf_init() 在“bootstrap.inc”中了解详细信息(散列发生在函数的最后一行)。

此 session cookie 是您需要删除以强制注销的 cookie。如果您的脚本仅适用于特定的 Drupal 实例,您可以调整它以使用特定的 session cookie 名称(如果 cookie 域更改,则会中断)。如果它用于更一般的用途,您需要想出一个动态版本来模仿 Drupal 生成名称的方式,即 'SESS' 。 md5([cookie_domain]),在 SSL 的情况下有一些复杂性。

关于drupal - 使 Drupal cookie 过期的简单代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2962740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com