иметь секретного пользователя уровня администратора или создать бэкдор


Я создал несколько сайтов WordPress для разных клиентов и хочу иметь легкий доступ к каждому сайту. Я всегда мог бы загрузить файлы по ftp или отредактировать базу данных, но я хочу, чтобы это было проще. Я хочу, чтобы это было секретно, чтобы клиент случайно не удалил моего пользователя. У кого-нибудь есть идеи, как у меня мог быть секретный пользователь уровня администратора или плагин, который является бэкдором.

Пожалуйста, поверьте мне, я никого не прошу строить это для меня. Я просто прошу кое-какие идеи. как сеанс мозгового штурма. Я работал со многими cms, но wordpress все еще является новым. Я подумал, что здесь могут быть ветераны, которые могли бы указать мне правильное направление.

О, Я ЗАБЫЛ САМУЮ ВАЖНУЮ ЧАСТЬ. Мне нужно, чтобы это был плагин!!! и очевидно, что он должен оставаться активным, даже если клиент обновит ядро.

Любая помощь/идеи были бы замечательны. Спасибо.

Хорошо, я вижу, что получаю много тепла от всех, кто думает, что я пытаюсь совершить неэтичное задача. Я приношу извинения и надеюсь, что никто не удалит это. Наверное, я попробую задать свой вопрос по-другому.

Давайте будем честными, чего я могу добиться с помощью этого "секретного пользовательского плагина", чего я не могу достичь с помощью ftp и доступа к базе данных. Я веб-мастер для каждого клиента. Я настраиваю хостинг. У половины из них даже нет информации для входа в систему ftp. Ничего хитрого не происходит, я просто пытаюсь облегчить себе жизнь.

Author: Steve Fischer, 2011-01-27

4 answers

На всякий случай, если у вас все еще есть доступ по FTP, вы можете использовать WPAA.PHP – WordPress Доступ Ко всем областям (Инструмент поддержки Wordpress).

Это один файл, и вы можете легко создать из него обязательный плагин, просто скопировав его в обязательный каталог и выполнив некоторые хаки. Кроме того, он автоматически настроится так, чтобы у вас был секретный URL-адрес для доступа к странице.

 4
Author: hakre, 2011-02-04 13:05:58

Следуя комментарию Джона, добавьте обязательный плагин, который:

При неудачном входе в систему или при регистрации проверьте наличие произвольного имени пользователя/пароля по вашему выбору (не забудьте хэшировать пароль в своем плагине, так как он будет прямо там открытым текстом, если нет). Если он совпадает, добавьте этого пользователя/пароль в базу данных со своей электронной почтой, предоставьте ему права администратора и войдите в систему.

По вашему усмотрению, при выходе из системы, проверьте, действительно ли комбинация пользователь/пропуск выходит из системы. И если это так, удалите его.

Таким образом, вы сможете войти в систему независимо от того, есть ли ваш логин суперадминистратора в списке пользователей.

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

Альтернативой может быть обязательный плагин, который защищает выбранное вами имя пользователя: если оно будет отредактировано/удалено, отклоните изменение до того, как оно произойдет.

 1
Author: Denis de Bernardy, 2011-01-27 22:38:31

Хорошо, поехали. Есть две вещи, которые вам нужно сделать:

  1. Используйте плагин mu (обязательный плагин). Любые PHP-файлы в каталоге wp-content/mu-plugins будут автоматически загружены WordPress раньше всех других плагинов. Эти обязательные для использования плагины нельзя деактивировать. Единственный способ удалить их - через FTP.

  2. Загляните в map_meta_cap() ( посмотреть источник можно здесь). В системе возможностей WordPress есть нечто, называемое "мета-возможностями"; например, есть фактической возможности под названием "edit_post" нет, но когда пользователь пытается отредактировать определенную запись, WordPress проверяет наличие этой возможности в функции current_user_can( 'edit_post', $post_id ). map_meta_cap() просматривает эту комбинацию и проверяет, например, принадлежит ли сообщение этому пользователю; если нет, разрешено ли им редактировать любое сообщение, которое они пожелают? если нет, не разрешайте им редактировать этот пост. Итак, что вы хотели бы сделать, это проверить мета-возможности для таких вещей, как edit_user и delete_user. Если пользователь пытается отредактировать или удалить вашего пользователя, и это не ты, не позволяй им.

Дайте мне знать, если у вас возникнут еще вопросы. Я действительно не знаю, как много вы знаете о WordPress.

 0
Author: John P Bloch, 2011-01-27 21:42:16

Да, это возможно, и в прошлом я создал несколько форм для работы с несколькими сотнями сайтов, управляемых моим работодателем. Я даже создал функцию "Войти как пользователь", где после проверки моих прав я мог видеть именно то, что видел пользователь. Это было невероятно полезно для дублирования проблем, возникших у одного пользователя, а не у другого.

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

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

Если вы законны и профессиональны, вы должны сделать это открыто и сообщить своим клиентам, что это существует. Вы должны с гордостью установить "Плагин поддержки клиентов User2774" и, поскольку вы не размещаете его на своих собственных серверах, позвольте им деактивировать его, когда вы расстанетесь. Изящное разрешение клиенту выбрать конкурента не является чем-то негативным.

Кроме того, законно или нет, установка скрытых задних дверей в чужой системе открывает перед вами ответственность, если что-то пойдет не так. Скорее всего, вы еще не являетесь LLC и будете нести представительную ответственность, если случится что-то плохое, и вам придется доказать, что вы и ваша задняя дверь не имели к этому никакого отношения.

 0
Author: Brian Layman, 2011-01-28 16:21:25