Форум программистов, компьютерный форум, киберфорум
WordPress
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 30.01.2015
Сообщений: 19
1

Организовать 404 для попытки /wp-login.php

29.04.2016, 14:18. Показов 1617. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую!
В файле functions.php прописал:

PHP
1
2
3
4
5
6
7
8
9
10
function force_404() {
    $requested_uri = $_SERVER["REQUEST_URI"];
 
    if (  strpos( $requested_uri, '/wp-login.php') !== false ) {
        status_header( 404 );
        nocache_headers();
        include( get_query_template( '404' ) );
        die();
    }
}
При попытке набрать адрессайта/wp-login.php получаю ожидаемый результат (404).
При попытке выхода из админки получаю то же (404), но никак не редирект на главную, как это прописано в том же functions.php:

PHP
1
2
3
4
5
6
function logout_page() {  
    $login_page  = home_url( '/index.php' );  
    wp_redirect( $login_page . "?loggedout=true" );  
    exit;  
}  
add_action('wp_logout','logout_page');
Не хотелось бы защищать wp-login.php через .htaccess посредством:

<files wp-login.php>
<IfModule mod_litespeed.c>
Order allow,deny
Deny from all
</IfModule>
</files>

поскольку будет 403 и станет ясно, что данный файл существует, а это, в свою очередь означает, что у меня wordpress (что, как бы, дает злоумышленнику полезную информацию).
Прошу, подскажите, как корректно организовать 404 при попытке ввода адрессайта/wp-login.php и вместе с тем корректно выходить из админки, не получая 404 (как это происходит в моей ситуации).
Спасибо за информацию по существу!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.04.2016, 14:18
Ответы с готовыми решениями:

Curl + wp-login.php
Здравствуйте! Пытаюсь написать парсер админки wordpress с помощью библиотеки Curl. Столкнулся с...

PHP login-bot для mail.ru
Здравствуйте. Узнал,что почта mail.ru удаляется через 3 месяца неактивности вместе со всеми данными...

404 ошибка, как правильнее редирект: на файл 404.php или на главную?
Обнаружил что 404 ошибка не настроена. (ошибка 500) дилемма - создать файл 404 с нужным откликом...

Можете посоветовать brute force для login.php?
Вот сам сайт: http://programs.cu.edu.ge/students/login.php

3
225 / 216 / 89
Регистрация: 12.09.2015
Сообщений: 986
30.04.2016, 16:31 2
AlekseyCyber, а что, простите, полезного в информации о вашей CMS для "злоумышленника"?

Скорее всего нужно будет долго и мучительно изучать mod rewrite и модифицировать WP, если вы хотите сделать это хорошо.
0
0 / 0 / 0
Регистрация: 30.01.2015
Сообщений: 19
01.05.2016, 16:14  [ТС] 3
Я немного покопался в сети и нашел решение. Ушло не так много времени, как предполагалось
Итак, "участники" защиты - файлы: functions.php, файл-дублер wp-login.php, /wp-includes/general-template.php
1) создаем файл-дублер файла wp-login.php в той же директории, называем его другим именем (например, wp-login-new.php), внутри нового файла заменяем все wp-login.php на wp-login-new.php;
2) в файле general-template.php заменяем все wp-login.php на wp-login-new.php;
3) в functions.php прописываем:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function force_404() {
    $requested_uri = $_SERVER["REQUEST_URI"];
 
    if (  strpos( $requested_uri, '/wp-login.php') !== false ) {
        status_header( 404 );
        nocache_headers();
        include( get_query_template( '404' ) );
        die();
    }
}
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('wp-login-new.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('wp-login-new.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 ; }
Ожидаемый результат:
- при попытке набора yourdomain.com/wp-login.php получаем 404;
- при выходе из админки админа переносит на главную.
0
225 / 216 / 89
Регистрация: 12.09.2015
Сообщений: 986
01.05.2016, 17:28 4
AlekseyCyber, немного намекну - site.ru/wp-admin и т.п.
Проблема большинства людей, который пытаются что-либо защитить в том, что они при построении защиты опираются на свои собственные знания. Но смысл в том, что надо думать как злоумышленник, а не как администратор сайта. Есть ещё с несколько десятков способов узнать, что у вас WP и ни один из них не требует каких-либо специальных знаний.
По-этому могу дать вам только пару советов: 1. Регулярно обновляйтесь. 2. С опаской пишите собственные функции влияющие на работу самого WP. 3. Регулярно меняйте пароль и следите за работой системы.
Ваше же решение просто перегружает functions.php лишними функциями, от которых нет толку. Защита сайта основывается не на таких вещах.
1
01.05.2016, 17:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.05.2016, 17:28
Помогаю со студенческими работами здесь

Нужно организовать доступ на страницу по Login & Password
Мне нужно организовать доступ на страницу по Login &amp; Password. про это в принципе можно найти...

Login PHP
Разберите пожалуйста код. Когда мы нажимаем на кнопку login идет проверка на наличие login и...

PHP дохнет после попытки подключиться к mysql
День добрый, вот такой код пытаюсь запустить для теста соединения с БД: &lt;?php $dblocation =...

Авторизация не работает, login.php
Решил я написать самодельный файловый хостинг,где у людей будет свой личный кабинет (после...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru