Почему пароли можно экспортировать как обычный текст в WordPress?

8

В моей установке WordPress 3.9.2 я могу извлечь пароли пользователей в виде простого текста, зайдя в раздел «Пользователи», выбрав всех пользователей и выбрав «Экспорт групповых действий».

Когда я смотрю в базу данных mySQL с phpMyAdmin, пароли хешируются.

Вопрос

Почему все пароли пользователей могут быть экспортированы в виде простого текста, и как я могу предотвратить это?

Обновить

Когда я либо экспортирую одного пользователя, либо «Экспортирую всех пользователей», я получаю вывод, похожий на этот

User ID,Username,Payment Status,First Name,Last Name,Address,Zip,City,Country,Date,Sex,Phone no.,Email,Company,Password,TOS,Website,AIM,Yahoo IM,Jabber/Google Talk,Biographical Info,Registered,IP
"31","xxx","paid","Jasmine","Lognnes","xxx","xxx","xxx","","xxx","female","","xxx","xxx","xxx","agree","","","","","","2012-01-26 18:13:19","xxx"
Жасмин Логн
источник
7
Я вижу только вариант «Удалить» в разделе «Массовые действия» на странице «Пользователи» (WP 3.9.2) со всеми выбранными пользователями: d.pr/i/M2YO Используете ли вы плагин для получения функциональности экспорта пользователя?
Ник
1
@JasmineLognnes Несколько способов, которыми вы можете исследовать: (A) Загрузите всю /wp-content/plugins/папку на свой компьютер, затем найдите в pluginsпапке слово «Export» с помощью командной строки или текстового редактора, который поддерживает поиск по нескольким файлам . (B) Создайте заново весь сайт на вашем локальном компьютере, затем отключите плагины, пока не исчезнет функция экспорта.
Ник
4
Вы абсолютно уверены, что видите простые текстовые пароли? В WordPress такой возможности никогда не было. Он использует phpass с 2.5, а md5 хэширует до этого.
Майкл Хэмптон
1
@JasmineLognnes Похоже, этот плагин заслуживает дальнейшего изучения. Очень трудно экспортировать незашифрованные пароли из хешированных паролей, хранящихся в базе данных, но я полагаю, возможно, что злонамеренный или плохо продуманный плагин сохраняет пароли в виде простого текста, когда они вводятся, когда пользователи входят в систему? Было бы целесообразно использовать PhpMyAdmin для поиска в базе данных одного из паролей открытого текста - это может указывать на плагин, который добавляет эти строки в базу данных. Если вы найдете виновника, не забудьте ответить на свой вопрос - было бы интересно узнать больше.
Ник
2
Если вы находитесь в Великобритании и принимаете платежи и сохраняете незашифрованные пароли или в двухстороннем формате шифрования, как предполагает ваш вопрос, то вы не будете соответствовать PCI, и ваша реализация будет незаконной
Том Дж. Новелл

Ответы:

15

Вы не можете экспортировать пароли как открытый текст в WordPress, потому что они не хранятся в открытом тексте. То, что вы видите здесь, очевидно, является результатом очень плохого плагина.

Поля, как Payment, Sexили Companyдаже не являются частью обычных таблиц WordPress.

На будущее: не устанавливайте плагины без предварительного тестирования и проверки в безопасной среде. Используйте локальную настройку, чтобы найти такие проблемы безопасности. Особенно, когда вы имеете дело с данными других людей, это требование .

Что вы должны сделать сейчас: отключите все плагины, пока этот экспорт больше не будет возможен. Вероятно, проблема была в последнем отключенном плагине. Найдите все таблицы, которые он создал, удалите эти таблицы. Удалите этот плагин.

Фуксия
источник
8

Это ошибка в wp-membersплагине. Другие сообщили о той же ошибке.

Жасмин Логн
источник
5
Ошибка здесь - плохой интерфейс. Похоже, wp-members позволяет добавлять настраиваемые поля в форму регистрации, в том числе поле «пароль». Что (понятно) не понятно пользователям, так это то, что эти добавленные поля предназначены только для сбора метаданных, а «пароль» относится только к типу ввода HTML и не имеет ничего общего с паролем пользователя WP, а также не дает никаких гарантий надежно хранить его.
Стивен Харрис
2
У Тосхо уже есть голоса;) но я думаю, что этот комментарий гораздо лучший ответ ....
Марк Каплун
На самом деле, это не лучший ответ. Это не ошибка в плагине, а скорее «ошибка пользователя». Из двух постов, на которые есть ссылки в этом ответе, в первом даже не говорится о членах WP. Речь идет о совершенно другом и не связанном плагине, пользовательской мета-версии. И если кто-то потрудится прочитать второй пост, связанный с ним, вы увидите, что ответ на этот вопрос объясняется тем, как пользователь настраивал свои пользовательские поля, а не чем-то, присущим плагину. Плагин не хранит пароли в виде обычного текста и мета пользователя.
butlerblog