Как защитить свой логин WordPress от атак грубой силы — простой подход?
Чтобы войти в панель администратора блога WordPress, нужно посетить файл wp-login.php . Многие спамеры будут перебирать пароли, пока не найдут правильный. Это не только ставит под угрозу безопасность вашего блога, но и потребляет пропускную способность трафика.
Вы можете проверить свой журнал посещений и заблокировать определенные IP -адреса, однако это решение может не быть общим и эффективным, если атаки осуществляются с нескольких/распределенных IP-адресов, например, DDOS. Следующее решение простое, но мощное/эффективное. Он работает, скрывая файл wp-login.php или устанавливая дополнительную блокировку, о которой знаете только вы.
Подход состоит в том, чтобы отредактировать wordpress functions.php (желательно в папке шаблона дочерней темы) и добавить следующие строки кода PHP :
function login_protection(){
if($_GET['secret'] != 'helloacm') header('Location: <a class="vglnk" target="_blank" href="https://helloacm.com" rel="nofollow"><span>https</span><span>://</span><span>helloacm</span><span>.</span><span>com</span></a>');
}
add_action('login_enqueue_scripts','login_protection');
Просто сохраните файл, и в следующий раз, если вы захотите войти в свою панель управления, вам нужно будет вызвать его следующим образом:
/wp-login.php?secret=helloacm
Вы можете изменить пару ключей и значений в соответствии с вашими предпочтениями. Неспособность передать секретные значения перенаправит пользователей на домашнюю страницу, однако, чтобы сделать ее лучше, вы можете захотеть вернуть ошибку 404 – не найдено, что может запутать/ввести в заблуждение злоумышленников, чтобы они отказались от атак грубой силы.
function login_protection(){
if($_GET['secret'] != 'helloacm') {
header($_SERVER['SERVER_PROTOCOL']. ' 404 Not Found', true, 404);
exit("<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">rn<html><head>rn<title>404 Not Found</title>rn</head><body>rn<h1>Not Found</h1>rn<p>The requested URL ". $_SERVER['SCRIPT_NAME']. " was not found on this server.</p>rn</body></html>");
}
}
add_action('login_enqueue_scripts','login_protection');