Простой код для истечения срока действия куки Drupal?

Одним простым щелчком мыши этот простой скрипт выполнит мульти-выход из системы:

Мудл

Elgg

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 не будет закрываться. Как я могу сделать то же самое с Drupal?

Примечание: Drupal использует 'host' вместо 'domain', ни с, ни с '.' работает до сих пор.

Спасибо.

EDIT: Я уверен, что файл cookie дважды имел «Host domain.com» , и при другом входе в систему использовался более стандартный формат «Домен .domain.com»

Файл cookie с именем "http_auth_ext_complete" устарел , и я все еще вошел в систему. Drupal использует второй файл cookie с идентификатором сеанса в качестве имени файла cookie + в таблице базы данных сеансов есть соответствующая запись также.

4 голоса | спросил This_Is_Fun 3 J0000006Europe/Moscow 2010, 05:10:23

1 ответ


0

Имя файла cookie сеанса, используемого Drupal, не является постоянным, но построено на основе хеша MD5 домена cookie конкретной установки Drupal - см. conf_init() в файле bootstrap.inc для получения подробной информации (хеширование происходит в последней строке функции).

Этот сеансовый cookie-файл - тот, от которого вам нужно избавиться, чтобы обеспечить выход из системы. Если предполагается, что ваш скрипт работает только для конкретного экземпляра Drupal, вы можете настроить его так, чтобы он использовал конкретное имя файла cookie сеанса (прервется при изменении домена cookie). Если это предназначено для более общего использования, вам нужно придумать динамическую версию, которая имитирует способ, которым Drupal генерирует имя, то есть 'SESS'. md5 ([cookie_domain]), с некоторыми сложностями в случае SSL.

ответил Henrik Opel 3 J0000006Europe/Moscow 2010, 13:09:37

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132