НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
105 of 182 menu

Таблица cache_token

Таблица cache_token является частью системы кеширования Drupal и предназначена для хранения сгенерированных токенов (уникальных случайных строк), которые используются для защиты от CSRF-атак, проверки подлинности форм, авторизации URL-адресов и обеспечения целостности сеансов пользователя.

Поля

Поле Тип данных Описание
cid varchar(255) Первичный ключ. Идентификатор кеш-записи (Cache ID). Для токенов обычно содержит префикс и значение самого токена или идентификатор пользователя.
data longblob Сериализованные данные, которые необходимо закешировать. Может содержать метаинформацию о токене, время его создания или связанные данные.
expire int Временная метка Unix, указывающая, когда запись в кеше становится недействительной. Значение 0 означает, что запись не имеет срока действия.
created int Временная метка Unix, указывающая, когда была создана запись в кеше. Используется для подсчета возраста записи.
serialized smallint Флаг, указывающий, были ли данные сериализованы перед сохранением. Значение 1 означает "сериализовано", 0 - "не сериализовано".
tags longtext Список тегов, связанных с кеш-записью, разделенных переводом строки. Позволяет инвалидировать группы связанных записей.
checksum varchar(255) Контрольная сумма, используемая для проверки целостности тегов при инвалидации кеша.

Как это работает

Drupal генерирует уникальные токены для пользователей, которые используются для защиты различных операций (например, отправка формы входа, сброс пароля, вызов AJAX). Эти токены сохраняются в таблице cache_token с определенным временем жизни (поле expire).

Когда пользователь выполняет действие (например, отправляет форму), система проверяет переданный токен. Drupal ищет его в кеше (таблица cache_token). Если токен найден, действителен (не истек срок его действия) и соответствует ожидаемому значению, действие считается авторизованным. В противном случае запрос отклоняется.

Toкены часто привязываются к конкретному пользователю (uid) и сессии, что предотвращает их использование злоумышленником от имени другого пользователя. Инвалидация (очистка) кеша токенов происходит либо по истечении срока их действия, либо принудительно при сбросе всего кеша или определенных тегов.

Использование отдельной таблицы cache_token, а не общей cache, позволяет эффективно управлять сроком жизни именно токенов и очищать их, не затрагивая другие виды кешированных данных.

Пример SQL-запроса

Посмотреть все активные (не истекшие) токены можно следующим запросом:

SELECT cid, created, expire FROM cache_token WHERE expire = 0 OR expire > UNIX_TIMESTAMP() ORDER BY created DESC;

Смотрите также

  • таблицу cache_bootstrap,
    которая хранит критически важный кеш для загрузки Drupal
  • таблицу cache_data,
    которая является общей таблицей для хранения кешированных данных
  • таблицу sessions,
    которая хранит активные пользовательские сессии
  • таблицу users,
    которая содержит данные учетных записей пользователей
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить