1. Не видишь хайд? скачивай через альтернативную ссылку. Жми на кнопку Download

  2.  Для того, что бы скачивать материал на сайте без ограничений, вы можете приобрести группу Premium. Подробнее здесь (кликабельно) Либо нажать на кнопку "Download"

  3. На нашем форуме большой выбор по обучающим курсам,монуалам,по заработку и продвижению сайтов! Спешите зарегистрироваться! И вы узнаете для себя огромный навык по заработку в интернете!
    Скрыть объявление

Для полноценного доступа к сайту, 

и получения всех  преимуществ,

рекомендуем  Зарегистрироваться 

Как защитить админку

Тема в разделе "Настройки XenForo", создана пользователем admin, 4 янв 2018.

Scriptvip -магазин скриптов Инфо-продукты Доска объявлений
  1. adminAdministrator

    admin

    Команда форума

    Статус:
    Не в сети
    Country:
    Russian Federation
    Регистрация:
    01.01.2018
    Сообщения:
    1.303
    Симпатии:
    2
    Итак, в этой статье будет рассмотрено 3 варианта защиты админки XenForo:
    • Ограничение доступа к файлу admin.php по IP через .htaccess.
    • Ограничение доступа к файлу admin.php по паролю через .htaccess и .htpasswd.
    • Переименовывание файла admin.php.
    У каждого метода есть свои минусы, которые будут рассмотрены в конце каждого метода.

    Ограничение доступа к файлу admin.php по IP через .htaccess:
    Тут все просто. Узнаем свой IP и дописываем к файлу .htaccess (в корне форума) следующее:
    PHP код:
    Код:
    <Files admin.php>
      Order deny,allow
      Deny from all
      Allow from xxx.xxx.xx.xx
    </Files>
    Вместо xxx.xxx.xx.xx указываем свой IP.
    Если нужно пускать и другие IP, то дописываем следующие через пробел:
    PHP код:
    Код:
    <Files admin.php>
      Order deny,allow
      Deny from all
      Allow from xxx.xxx.xx.xx yyy.yyy.yy.yy
    </Files>
    Также можно указывать маски диапазона (может быть полезно, если у вас динамический IP), примеры маски:
    PHP код:
    Код:
    100.99.88.x = 100.99.88.0/24
    100.99.x.x = 100.99.0.0/16
    100.x.x.x = 100.0.0.0/8
    То есть, указав 100.99.88.x мы будем пускать IP с 100.99.88.0 по 100.99.88.255. Для расчета IP можно воспользоваться IP-калькулятором.
    Для тех же, у кого не прописан IP, будет выдаваться страница с ошибкой 403:
    PHP код:
    Код:
    Forbidden
    You don't have permission to access /forum/admin.php on this server.
    Недостаток 1-го способа очевиден. Если у вас динамический IP или же к админке должны иметь несколько человек с разными IP, то этот вариант будет несколько затруднительным. Придется вписывать много IP.

    Ограничение доступа к файлу admin.php по паролю через .htaccess и .htpasswd:
    Генерируем файл .htpasswd, задав логин и пароль.

    Вводим желаемый логин и пароль и получаем что-то типа: login:$apr1$sOXY....$C4/V8oJK89nf3D3OEIs5Q/
    Сохраняем полученную строчку в файл .htpasswd и загружаем его на сервер. Желательно расположить его выше корня сайта, т.е. там, куда посетители не могут добраться.
    Дальше нужно поправить .htaccess, который в корне форума, дописав туда следующее:
    PHP код:
    Код:
    <Files admin.php>
      AuthUserFile /путь/относительно/корня/веб-сервера/до/файла/.htpasswd
      AuthType Basic
      AuthName "Какой-нибудь заголовок для диалогового окна авторизации"
      Require valid-user
    </Files>
    Теперь при запросе admin.php нужно будет сначала ввести наш новый логин и пароль, и уже только после этого можно будет вводить логин и пароль администратора XenForo.

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

    Переименовывание файла admin.php:
    Меняем в корне форума имя у файла admin.php на что-то свое, например, adminka.php
    Но это еще не все. Многие ссылки в админке не будут теперь работать. Поэтому необходимо открыть library/XenForo/Link.php и найдя:
    PHP код:
    Код:
    $outputLink = 'admin.php' . ($append !== '' ? '?' : '') . $append;
    Заменить admin.php на наше новое имя:
    Код:
    $outputLink = 'adminka.php' . ($append !== '' ? '?' : '') . $append;
    В шаблоне moderator_bar находим строку:
    Код:
    <a href="admin.php" class="acp adminLink"><span class="itemLabel">{xen:phrase admin_control_panel}</span></a>
    И также меняем admin.php на наше новое имя файла.
    И еще в шаблоне PAGE_CONTAINER находим:
    PHP код:
    Код:
    <a href="admin.php">{xen:phrase reopen_via_admin_control_panel}</a>
    И меняем admin.php.
    И не забываем проделывать эти 4 операции после каждого обновления еще раз!

    Недостаток третьего способа в том, что необходимо править файл (пусть и один, но все же). Это значит, что при каждом обновлении форума нужно не забыть переименовать обновленный admin.php и заменить новое имя в файле Link.php.
    Дополнительно:
    В версиях 1.1.3 и выше в шаблоне PAGE_CONTAINER отсутствует код:
    PHP код:
    Код:
    <a href="admin.php">{xen:phrase reopen_via_admin_control_panel}</a>
    Ищем шаблон notice_board_closed, а в нем код:
    PHP код:
    Код:
    <a href="admin.php?options/list/boardActive">{xen:phrase reopen_via_admin_control_panel}</a>