Главная » Создание сайтов » WordPress. Закрываем авторизацию wp-login.php
Русфонд

WordPress. Закрываем авторизацию wp-login.php

8 августа 2013 - Рубрики Создание сайтов

3192 просмотров

В сайдбар справа добавлена кнопка Google+. Если вам поможет данный материал, прошу вас нажмите на кнопку - порекомендуйте сайт в Google.

Всем привет!

Сегодня небольшая статья на тему того, как закрыть авторизацию на WordPress по адресу

http://ваш_сайт/wp-login.php

Данная статья связана с рекомендациями моего хостера в связи с многочисленными brute force атаками. Цель данных атак — получение доступа к сайту путем перебора пары login/password

Итак…

1. Копируете файл wp-login.php из корня сайта к себе на ПК. Переименовываете данный файл в любое название, например, asdfgh.php

2. В этом файле ( asdfgh.php) находите все упоминания wp-login.php и меняете на имя созданного файла (в моем примере asdfgh.php). У меня Notepad++ нашел 13 упоминаний. Сохраняете.

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

http://ваш-сайт/asdfgh.php

4. Закрываем в файле .htaccess (в корне блога) доступ к wp-login.php. Для этого вписываем

<filesmatch "wp-login.php">
Order Allow,Deny
Deny from all
</filesmatch>

и при заходе http://ваш-сайт/wp-login.php сервер будет отдавать 403 код.

5. но в админке для того чтобы выйти нам надо переписать адрес выхода. Используем action, вписываем его в файл functions.php темы (ваш_сайт/wp-content/themes/ваша_тема/):

add_filter('login_url', 'my_custom_login_url');
add_filter('logout_url', 'my_custom_logout_url');

function my_custom_login_url($force_reauth, $redirect=null){
$login_url = site_url('asdfgh.php');
if (empty($redirect)) $redirect=home_url();
$login_url = add_query_arg('redirect_to', urlencode( $redirect ), $login_url );
return $login_url ;
}

function my_custom_logout_url($force_reauth, $redirect=null){
$logout_url = wp_nonce_url(site_url('asdfgh.php')."?action=logout", 'log-out' );
if (empty($redirect)) $redirect=home_url();
$logout_url = add_query_arg('redirect_to', urlencode( $redirect )."/?loggedout=true", $logout_url );
return $logout_url ;
}

обратите внимание: asdfgh.php в этом коде вам нужно заменить на свою новую страницу входа.

в этом коде:

add_filter(‘login_url’, ‘my_custom_login_url’);
add_filter(‘logout_url’, ‘my_custom_logout_url’); — необходимы для входа и выхода (если используется виджет входа вп).

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

$redirect=home_url(); — после выхода — редирект на главную страницу

Плюсы:
Теперь ваш wp-login.php закрыт для всех
вам в .htaccess каждый раз не нужно вписывать ваш новый динамический айпи.
Блогом продолжают пользоваться ваши многие зарегистрированные пользователи
Файлы движка мы не трогаем
Код в functions.php ни коем образом не грузит сайт

Минусы:
При обновлении движка блога вам нужно скопировать новый wp-login.php в ваш файл авторизации и выполнить пункт 3

Но это так просто :)

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

П.С. не забудьте оставить комментарий к статье, а также поделиться ссылкой с друзьями и коллегами через социальные сервисы или скопировав ссылку на статью ниже. Кроме того, вы можете предложить тему статьи через кнопку слева "Предложить тему статьи". Там же можно оставить пожелания, идеи по развитию сайта, а также благодарности (ну а вдруг)
П.П.С. предлагаю вам также вступить в Группа Вконтакте!группу Вконтакте, где вы сможете пообщаться с участниками на интересующие вас темы. Смелее!!!
Если вы больше времени проводите в Twitter, то за обновлениями на сайте можно следить, подписавшись на мою лентуTwitter: follow me!

 

Возможно вам также будут интересны статьи :

 

Предыдущие материалы из данной категории:

Комментариев: 0 , ,

Понравилась статья? Поделитесь ссылкой




Оставьте комментарий:




:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

Я человек, а не бот.