Каковы подробности того, как Wordpress хранит данные аутентификации пользователя? - PullRequest
3 голосов
/ 29 июня 2009

Прежде всего, позвольте мне определить конечную цель:

Я бы хотел, чтобы Wordpress (версия 2.8) управлял данными аутентификации / учетными данными и контролем доступа для веб-сайта. Wordpress будет использоваться для большей части сайта, но некоторые страницы будут создаваться вне среды Wordpress. Эти страницы должны иметь возможность использовать данные аутентификации пользователя, хранящиеся в базе данных Wordpress, в качестве справочной информации для принятия собственных решений о доступе.

Итак, вопрос:

Как именно Wordpress хранит данные аутентификации пользователя в своей базе данных?

<ч />

Первая часть этого ответа проста: в базе данных Wordpress есть таблица, содержащая основные пользовательские данные. Я полагаю, что именем по умолчанию для этой таблицы является «wp_users», но это может измениться в зависимости от способа установки Wordpress. Эта таблица содержит поля «user_login» и «user_pass», которые содержат данные имени пользователя и пароля соответственно.

"user_login" - это просто текстовое поле, так что к нему достаточно легко получить доступ, но пароль засоляется и хэшируется. Это приводит к первому, что еще предстоит определить: какой процесс Wordpress использует для посылки и хеширования для генерации строк, которые он хранит в «user_pass»?

Другая часть, которая остается открытой, - это где / как Wordpress хранит свои «роли». В моей установке эти роли по умолчанию: администратор, редактор, автор, участник и подписчик. Я не вижу, как эти роли связаны с отдельными пользователями. Кроме того, могут ли эти роли измениться?

<ч />

Итак, резюмируя, реальный вопрос состоит из трех частей:

1) Какой метод Wordpress использует для переноса пользовательских текстовых паролей в строки, хранящиеся в столбце «user_pass» таблицы базы данных «wp_users»?

2) Где хранятся ссылки между отдельными пользователями и их соответствующими "ролями" в Wordpress?

3) Можно ли изменить «роли» в Wordpress, чтобы изменить их имена и / или добавить / удалить их?

<ч />

Примечание: я понимаю, что другим подходом было бы, чтобы страницы, не относящиеся к Wordpress, проверяли файл cookie Wordpress для определения доступа. Я собираюсь создать еще один вопрос в том же духе, но для целей этого вопроса основное внимание уделяется тому, как страницы, не относящиеся к Wordpress, могут использовать фактическую базу данных Wordpress для принятия решений по управлению доступом.

1 Ответ

2 голосов
/ 29 июня 2009
  1. Wordpress использует Portable PHP хэширование паролей . Смотрите также этот вопрос: Какой тип хеша использует WordPress?
  2. По умолчанию эта связь находится в таблице wp_usermeta под клавишей wp_user_level
  3. Не без плагина (или без редактирования, редактирования кода или базы данных Wordpress)

Возможно, вы захотите взглянуть на код bbPress , поскольку он будет использовать базу данных пользователей Wordpress.

...