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

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

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

Студворк — интернет-сервис помощи студентам
Приветствую!
В файле 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
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 с нужным откликом или настроить 301 редирект на...

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

Скорее всего нужно будет долго и мучительно изучать mod rewrite и модифицировать WP, если вы хотите сделать это хорошо.
0
0 / 0 / 0
Регистрация: 30.01.2015
Сообщений: 19
01.05.2016, 16:14  [ТС]
Я немного покопался в сети и нашел решение. Ушло не так много времени, как предполагалось
Итак, "участники" защиты - файлы: 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
AlekseyCyber, немного намекну - site.ru/wp-admin и т.п.
Проблема большинства людей, который пытаются что-либо защитить в том, что они при построении защиты опираются на свои собственные знания. Но смысл в том, что надо думать как злоумышленник, а не как администратор сайта. Есть ещё с несколько десятков способов узнать, что у вас WP и ни один из них не требует каких-либо специальных знаний.
По-этому могу дать вам только пару советов: 1. Регулярно обновляйтесь. 2. С опаской пишите собственные функции влияющие на работу самого WP. 3. Регулярно меняйте пароль и следите за работой системы.
Ваше же решение просто перегружает functions.php лишними функциями, от которых нет толку. Защита сайта основывается не на таких вещах.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.05.2016, 17:28
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
API на базе FastAPI с Python за пару минут
AI_Generated 07.07.2025
FastAPI - это относительно молодой фреймворк для создания веб-API, который за короткое время заработал бешеную популярность в Python-сообществе. И не зря. Я помню, как впервые запустил приложение на. . .
Основы WebGL. Раскрашивание вершин с помощью VBO
8Observer8 05.07.2025
На русском https:/ / vkvideo. ru/ video-231374465_456239020 На английском https:/ / www. youtube. com/ watch?v=oskqtCrWns0 Исходники примера:
Мониторинг микросервисов с OpenTelemetry в Kubernetes
Mr. Docker 04.07.2025
Проблема наблюдаемости (observability) в Kubernetes - это не просто вопрос сбора логов или метрик. Это целый комплекс вызовов, которые возникают из-за самой природы контейнеризации и оркестрации. К. . .
Проблемы с Kotlin и Wasm при создании игры
GameUnited 03.07.2025
В современном мире разработки игр выбор технологии - это зачастую балансирование между удобством разработки, переносимостью и производительностью. Когда я решил создать свою первую веб-игру, мой. . .
Создаем микросервисы с Go и Kubernetes
golander 02.07.2025
Когда я только начинал с микросервисами, все спорили о том, какой язык юзать. Сейчас Go (или Golang) фактически захватил эту нишу. И вот почему этот язык настолько заходит для этих задач: . . .
C++23, квантовые вычисления и взаимодействие с Q#
bytestream 02.07.2025
Я всегда с некоторым скептицизмом относился к громким заявлениям о революциях в IT, но квантовые вычисления - это тот случай, когда революция действительно происходит прямо у нас на глазах. Последние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru