Скрываем config.core.php

Я давненько на своих сайтах меняю адрес админки и папки /connectors/

Мне нравится, что MODX позволяет это делать и очень сложно обнаружить, что сайт работает на нём. Но тут Николай Ланец смутил меня тем, что MODX можно определить еще и по файлу /config.core.php в корне. Да, он не выдаёт никакой информации, но показывает белый экран, а веб-сервер отдаёт ответ 200.

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

Кстати, так же можно закрыть и папку /core/, чтобы вместо ошибки 403 Forbidden отдавалась ошибка 404 — типа «не знаю никакого core, вы что? Тут таких нет...»

Вот, что нужно прописать в .htaccess (если у вас Apache)
RewriteCond %{REQUEST_URI} ^/config.core.php*
RewriteRule ^(.*)$ [R=404]

RewriteCond %{REQUEST_URI} ^/core/*
RewriteRule ^(.*)$ [R=404]

Теперь, сервер будет показывать 404 страницу при попытке просмотреть файлы из /core/ или файла /config.core.php

Надеюсь, знатоки подскажут, как сделать это для nginx. И вообще — как вы думаете, правильно ли так закрывать папку /core/ или лучше вернуть 403 Forbidden?
Илья Уткин
13 февраля 2016, 14:56
modx.pro
30
13 190
+5

Комментарии: 66

Сергей Шлоков
13 февраля 2016, 18:06
1
+3
Пару раз встречал, когда папки переименовывают, но потом в robots.txt пишут типа такого
Disallow: /new_adminka/
    TITAN-UZ
    13 февраля 2016, 20:03
    +1
    Да все новички в этом ошибается! :D
      mngatoff
      13 февраля 2016, 23:38
      0
      … блин.
      :D
      ну ок, а как быть? от индексации-то надо закрыть, сеошники орут
        Павел Гвоздь
        14 февраля 2016, 00:04
        +1
        Неужели робот индексит страницу авторизации в админку? Первый раз слышу.
          mngatoff
          14 февраля 2016, 00:07
          0
          сеошникам бы объяснить то же самое
            mngatoff
            14 февраля 2016, 00:13
            +1
            вот прямой «свежий» диалог с очень хорошим сео-спецом.
            *Алексей*
            а тут закономерный вопрос
            надо ли админку от индексации закрывать и служебные папки?

            *...*
            да обычно закрывают админ и служебные папки и 404 стр
            стандартный набор папок в робот добавь

            *Алексей*
            а хоть один случай индексации этих папок у кого-то был?

            *...*
            в смысле?
            ну то ли робот ходит только по нужному, то ли по всему на свете и нихрена не врубается
              Илья Уткин
              14 февраля 2016, 01:06
              +1
              А потом робот обижается, что его не предупредили, психует и со злости понижает сайт в поиске… эти роботы, они такие эмоциональные… работа у них каторжная — ходить по сайтам, странички отсматривать…
                mngatoff
                14 февраля 2016, 01:09
                0
                ну так-то правда же) если всё незакрыто, то непонятно, где нужное. Но админку «разрешили» не прятать, уговорил))
                  Сергей Шлоков
                  14 февраля 2016, 08:57
                  +1
                  Если она не переименована, то можно и оставить в роботс. А если переименовали, то зачем светить её. Смысл переименования теряется.

                  а хоть один случай индексации этих папок у кого-то был?
                  Только если найдется «добрый» человек с мотивом «век меня помнить будете» и разместит где-нибудь ссылки. Робот ходит только по ссылкам — внешним, внутренним. Ещё подглядывает в карту сайта.
                    Владимир
                    14 февраля 2016, 15:10
                    0
                    Кстати. В Яндекс-Вебмастер когда то админку джумлы и вордпресса видел, а вот системные папки MODX ни разу не видел среди проиндексированных страниц. Видимо, СЕОшников можно отсеивать по этому параноидальному желанию вносить в роботс необязательные записи. Другое дело на фронтенде, страницы регистрации, подписки и т.п.
                      mngatoff
                      14 февраля 2016, 15:17
                      0
                      сеошники не всегда всё знают про Modx, это еще не делает их плохими сеошниками. В моём случае, достаточно было убедить, что ссылок на админку нигде нет.
      Воеводский Михаил
      13 февраля 2016, 18:12
      0
      Лучше закрывать на уровне сервера. Переименованию админку указывать в robots смысла мало. Там все равно находить для поиска нечего.
      периодически сталкивался со случаями, когда админка закрыта дополнительной http авторизацией.
        Павел Гвоздь
        13 февраля 2016, 18:22
        0
        А вот у меня вопрос. Если зайти в MODX на несуществующую страницу (ну прям реально несуществующую, например modx.pro/sdsdsdfsdf), то нас перенаправит на внутреннюю заглушку CMF. А если зайти, используя твой способ, в папку /core/ или /config.inc.php, то мы увидим серверную 404. С этим как быть?)
        Борода
        13 февраля 2016, 18:41
        0
        А Я ещё и префикс таблиц другой делаю)
        Папка /connectors/ переименовывается так же как и папка админки?
        Если стоит компонент Tickets, то MODX палится исходным кодом, так как в нём появляется код
        <link rel="stylesheet" href="/assets/components/tickets/js/web/editor/editor.css" type="text/css" />
        <link rel="stylesheet" href="/assets/components/tickets/css/web/default.css" type="text/css" />
        Вот как с этим быть?)
          Воеводский Михаил
          13 февраля 2016, 18:44
          0
          Указать в настройках tickets пути к файлам, расположенным в ином месте. Другое дело, что не все дополнения позволяют указывать пути с скриптам.
            Борода
            13 февраля 2016, 21:34
            0
            Надо, в общем, расширенную установку делать) Там много чего можно поменять, в том числе и имя конфигурационного ключа)
          Fi1osof
          13 февраля 2016, 19:00
          -3
          Давно так уже делаю.
          business-vs-crisis.ru/manager/
          business-vs-crisis.ru/core/
          business-vs-crisis.ru/core.config.php

          Даже где-то писал по этому поводу. При чем советую папки manager/, core/ и т.п. не переименовывать, а просто симлинки на них делать на новые УРЛ-ы. Все равно если кто будет на уровне PHP, он сможет добраться до кастомных папок где бы они ни были. А так главная задача — маскировка — выполнена, и проблем с нарушением структуры нет.
            Борода
            13 февраля 2016, 20:10
            0
            Фавиконка и NewsModBox всё палит) Даже никакие пути перебирать не надо)
              Fi1osof
              13 февраля 2016, 20:28
              -4
              Палево))))
              А если серьезно: она же не идет из коробки, у каждого своя фавиконка.
                Сергей Шлоков
                14 февраля 2016, 09:17
                0
                Disallow: /public/components/modxsite/*
                Disallow: /public/components/modhybridauth/*
                Обычная школа. 3-й «Б» класс.
                — Так, класс, успокоились. Иванов, хватит дергать за косички Курбанбаеву! Лучше ответь мне, на какой системе работает этот сайт? Садись, 4. Почему? Думал 2 секунды.

                :)
                  Fi1osof
                  14 февраля 2016, 18:00
                  -5
                  Это как раз тот случай, когда яндекс все-таки что-то проиндексировал не нужное joxi.ru/brRDO4pfQn84a2

                  На счет шуток про школу: шути. Знаний правда у тебя все равно не прибавится от этого? И, если я не шучу над твоим кодом, это не значит, что у тебя там все ОК. Хочешь пройдусь по какому-нибудь твоему пакетику? Как когда пришлось переписывать почти все, что ты в консоль дописал и объяснять тебе почему так ни в коем случае нельзя делать? Ты просто реально уже начинаешь раздражать. Гонору дофига, а толку нефига. Был бы какой-то специалист вменяемый, а то переписал пару пакетиков и все, звезду поймал.
                    Сергей Шлоков
                    14 февраля 2016, 18:18
                    +1
                    Опять 25. Остаётся только вспомнить поговорку про горбатого и могилу. Я всего лишь продолжил тему сторонников не прятаться, а просто закрывать доступы. Я абсолютно уверен, что ты добавил это по делу. Вот тут и проявляется плюс сторонников закрытия доступов. Как ни прячь, всё равно где-то всплывёт. У меня ровно такие же проблемы с hybridayth и приходится в роботс прописывать условия. Что естественно сразу делает очевидным систему. Поэтому какой смысл скрывать. Лучше направить усилия на другое.
                    Хочешь пройдусь по какому-нибудь твоему пакетику?
                    Я только за.
                      Fi1osof
                      14 февраля 2016, 18:21
                      -5
                      Сергей, обходи мои комменты стороной. Они у тебя не конструктивны и дико меня раздражают. Ни один твой коммент я еще не смог для себя принять на практике. Ни к чему не уместные анекдотики — фигня какая-то.
                        Сергей Шлоков
                        14 февраля 2016, 18:23
                        0
                        Хочешь пройдусь по какому-нибудь твоему пакетику?
                        Хочу. Хочу! ХОЧУ!!!
                          Fi1osof
                          14 февраля 2016, 18:24
                          -4
                          Читай ниже, давно уже написал.
                          Больше времени на тебя не потрачу, по тому что увидел уже достаточные выводы сделал.
                          Сергей Шлоков
                          14 февраля 2016, 18:36
                          0
                          А я твоими конструктивными комментариями зачитываюсь. Сначала про pdoTools и Василия. Когда был послан всеми на всех ресурсах, затихарился, отлежался, а теперь решил, что все забыли про тебя и пришёл сюда такой гордый — «Народ, каких дополнений не хватает? Готов за деньги сделать. Кто хочет меня купить на 2 часика». Опустился совсем. Бедняга. Подкинуть 500 рубликов?
                            Fi1osof
                            14 февраля 2016, 18:54
                            -2
                            Игнор.
                      Fi1osof
                      14 февраля 2016, 18:17
                      -6
                      Что, серьезно? Твой AdminTools ничего в БД не пишет? Вообще весь на сессиях? Вот с такими костылями? Ты что здесь еще делаешь? Иди переписывай все нафиг, не позорься. Это толпы школьников тебе будут кричать «Awesome!», не разбираясь в деталях. Но это как был быдлокод, так и остался. Судя по количеству форков на гитхабе ты усердно учился на Васиных и моих примерах, а сейчас решил уже что всех обогнал? Тебе учиться и учиться еще, и все равно всегда будешь в отстающих. Даже я сейчас, пока пишу эти строки, понимаю, что мог бы вместо этого чем-то полезным продолжить заниматься, а тебе-то вообще куда время тратить? Пока никаких новых технологий не придумал вообще расслабляться тебе рано. Но, подозреваю, что ты и сам уже понимаешь, что своих высот достиг, годы все-таки не те уже, вот и сидишь в детство впадаешь, анекдотики рассказываешь. Ну, каждому свое, и свое не каждому. Рассказывай дальше анекдотики, а я пойду дальше работать.
                Павел Гвоздь
                13 февраля 2016, 19:15
                0
                Помоему вот это подойдёт для nginx:
                location ~* /((core/)|config\.[a-zA-Z]+\.php) {
                	deny all;
                	return 404;
                }
                  Роман Садоян
                  13 февраля 2016, 20:00
                  0
                  Или так,
                  rewrite ^/config.core.php* 404 redirect;
                  Вместо 404 можно использовать что-угодно.
                  Fi1osof
                  13 февраля 2016, 20:31
                  1
                  +1
                  Не, запреты или редиректы — это не то, будет свидетельствовать о том, что что-то там не так, не обычная страница.
                  У меня так прописано:
                  location ~ ^/(assets|core|manager|connectors)/{
                                  rewrite .*$ /404.html last;
                          }
                          location ~* config.(core|inc).php {
                                  rewrite .*$ /404.html last;
                          }
                  То есть просто подмена, а не какие-либо редиректы.
                  Сергей Шлоков
                  13 февраля 2016, 20:00
                  0
                  А с чего вдруг такой кипишь? Стали сайты на MODX ломать?
                    Борода
                    13 февраля 2016, 20:10
                    0
                    Для фанатиков безопасности)
                    Роман Садоян
                    13 февраля 2016, 20:01
                    0
                    Мне нравится, что MODX позволяет это делать и очень сложно обнаружить, что сайт работает на нём
                    Ах да, в новом модиксе еще и заголовок X-Powered-By придется выпиливать =)
                      Евгений Webinmd
                      13 февраля 2016, 20:53
                      1
                      +3
                      ну вот прячете все следы modx, а в итоге выходит, что в каких-то рейтингах на нём два с половиной сайта и заказчик паникует о «непопулярной системе, дайте джумлу/вордпресс».
                        Илья
                        13 февраля 2016, 21:01
                        +1
                        Вот бы кто манаул написал на эту тему, а то самому страшно соваться в эти дебри, сломаю что-нибудь…
                          Борода
                          13 февраля 2016, 21:34
                          +1
                          Вот есть небольшой)
                            mngatoff
                            13 февраля 2016, 23:41
                            0
                              mngatoff
                              13 февраля 2016, 23:43
                              +1
                              перевести, может? я могу, если желающие найдутся
                                Борода
                                14 февраля 2016, 08:25
                                +1
                                Я бы с удовольствием почитал перевод. Безопасность для меня интересная тема) Мне вот непонятно, можно ли уже на рабочем сайте делать все манипуляции что там описаны.
                                  mngatoff
                                  14 февраля 2016, 13:57
                                  0
                                  можно ли уже на рабочем сайте делать все манипуляции что там описаны.
                                  можно, только аккуратно)
                                    mngatoff
                                    15 февраля 2016, 05:06
                                    0
                                    Сергей Шлоков
                                    14 февраля 2016, 08:46
                                    0
                                    Конечно переводи.
                                mngatoff
                                13 февраля 2016, 23:42
                                0
                                а папку /core/ можно вообще вынести из корня за пределы public_html, и хренушки туда влезешь извне тогда. Работает прекрасно. С обновлениями некоторых компонентов только бывают трудности из за прав на папки
                                  Сергей Шлоков
                                  14 февраля 2016, 08:30
                                  0
                                  хренушки туда влезешь извне тогда
                                  И много народу туда лезут? Я слышал только про дыру в connectors (давным давно).
                                  Василий Наумкин
                                  14 февраля 2016, 09:23
                                  1
                                  +3
                                  Я просто закрываю все служебные директории паролем через Nginx и нет проблем.

                                  А можно еще и скомбинировать это с пропуском по IP, через директиву satisfy. Кто в разрешённом списке — ходит без авторизации, а у других запрашивается логин-пароль.

                                  Очень удобно, рекомендую.
                                    Борода
                                    14 февраля 2016, 15:51
                                    0
                                    Василий, понимаю что оф топ. Но вся надежда только на вас, чтобы третий раз тему не создавать. Можете что-то подсказать по этой проблеме? Уж очень мне хочется вот эту вашу идею реализовать. Благодарю за понимание.
                                      Борода
                                      17 февраля 2016, 07:32
                                      0
                                      Василий, а обновлению системы это никак не мешает? Можно смело обновлять или лучше отключить защиту паролем на момент обновления?
                                    TITAN-UZ
                                    20 февраля 2016, 04:36
                                    0
                                    3 года работаю на MODX REVO пока админку и других папок яндекс и гугл не индексировал.
                                    В robots.txt эти папки не указаны.
                                    Все системные папки переименованы кроме assets (Thumbof тупит иногда если сменит папку)
                                    В яше запретил индексацию yandex.countr а то он все линки при переходе отправляет индексацию.

                                    1 сайт Индексирован 1к страниц
                                    2 сайт Индексирован 2.2к страниц
                                      Maxim
                                      24 февраля 2016, 19:22
                                      0
                                      location ~ ^/(assets|core|manager|connectors)/{
                                      rewrite .*$ /404.html last;
                                      }
                                      Сделав так, не смог зайти в админку.
                                        Роман Садоян
                                        24 февраля 2016, 21:20
                                        1
                                        0
                                        По моему Николай тут просто что-то не дописал.

                                        Можно ограничить доступ по IP — в принципе этого достаточно, учитывая что почти у каждого есть возможность использовать статический IP / VPN со статическим IP.
                                        location ~ ^/(core|manager|connectors)/{
                                        	allow 192.168.1.1;
                                        	deny all;
                                        
                                        }
                                        Или ограничить по паролю, как говорил Василий.
                                          Maxim
                                          24 февраля 2016, 21:40
                                          0
                                          да, идея, надо будет попробовать.
                                          @ndrew
                                          24 февраля 2016, 23:09
                                          0
                                          Паранойя такая паранойя.

                                          Я остановился на этом — в htaccess:
                                          RewriteCond %{REQUEST_URI} ^/config.core.php*
                                          RewriteRule ^(.*)$ [R=404]
                                          RewriteCond %{REQUEST_URI} ^/core*
                                          RewriteRule ^(.*)$ [R=404]

                                          Переименовал каталоги — manager и connectors с правкой путей к ним в config.inc.php
                                          Александр Иванов
                                          25 января 2017, 13:38
                                          0
                                          berlinadesign.ru/manager/ — чел просто стили поменял
                                          berlinadesign.ru — здесь cms через Wappalyzer не определяется

                                          Как в данном случае скрыты следы CMS для Wappalyzer и ей подобным сайтам?
                                            Aртур Чикин
                                            25 января 2017, 17:28
                                            +2
                                            Для того что бы скрыть на nginx признаки использования modx для modhost и не только для этого я использую следующую конфигурацию:
                                            location ~* ^/config.core.php { rewrite ^/(.*)$ /index.php?q=$1; }
                                            location ~* ^/core/           { rewrite ^/(.*)$ /index.php?q=$1; }
                                            location ~* ^/ht\.            { rewrite ^/(.*)$ /index.php?q=$1; }
                                            location ~* ^/\.              { rewrite ^/(.*)$ /index.php?q=$1; }

                                            Для того что бы robots.txt можно было сделать ресурсом modx, а не статичным файлом на modhost
                                            location = /robots.txt        { allow all; log_not_found off; access_log off; try_files $uri $uri/ @rewrite; }

                                            Илья, пожалуйста добавь в инструкцию и поправь название немного.
                                              Евгений
                                              10 октября 2018, 15:30
                                              1
                                              0
                                              Доброго времени суток!!!
                                              Не могу решить такой вопросик — установил modx на сервер, на котором находятся еще 2 сайта. (не modx )
                                              Так как доменного имени пока нету, прописал в файле hosts строку доступа через ip. — ip название сайта. Вобщем
                                              сайт открывается и работает нормально. НО, если обратится к любому файлу в директории core, то сервер отдает этот файл на скачивание. Причем при той же конфигурации, но на локальном сервере ответ нормальный 403 forbidden.

                                              Еще есть сайт на другом хостинге, но там есть доменное имя, и там все нормально, при доступе к core выдается 403 ошибка.

                                              Может кто знает в чем проблема, почему при закрытом доступе в .htaccess файлы из core отдаются на скачивание?
                                                Евгений
                                                10 октября 2018, 20:33
                                                0
                                                Вопрос решился на хостинге. Оказалось там nginx))
                                                Евгений Борисов
                                                10 октября 2018, 20:22
                                                0
                                                Но тут Николай Ланец смутил меня тем, что MODX можно определить еще и по файлу /config.core.php в корне
                                                о0 чудо.Вы никогда не сможете открыть сайт если в запросе присутствует строка (без пробелов)
                                                222 5073 858 5072011
                                                Ответом будет не только белый экран, но еще и характерный статус ответа — 422:-) Кстати, фиксится вот этим PR, который не могут принять уже 10 дней. Заняты видимо слишком)


                                                P.S. Безопасник Ланец как всегда отличился. Отдал не только ошибку, но еще и внедрил раскрытие путей.

                                                P.P.S. Только сейчас заметил, что тема стара как мир. Простите за АП, но в ленте комментариев вылезло.
                                                Кирилл
                                                27 октября 2018, 20:19
                                                0
                                                Илья подскажи config.inc.php — да 404 ошибка, но /core/ — 403 отдает и здесь тоже кстати…
                                                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                                  66