Переименовываем файл admin.php

SOUL

АдминкА
Администратор
Сообщения
6.116
Симпатии
9.234
Баллы
266
#1
Есть несколько способов защиты админки Xenforo.

Я напишу о самом простом, о том, который подошёл мне и который использовала.

Этот способ заключается в переименовании admin.php.

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

1. В корне форума мы должны изменить имя у файла admin.php на какое-то своё имя, например, adminochka.php.

2. Но, чтобы всё, как и прежде, корректно работало, нам необходимо открыть library/XenForo/Link.php и найти:

Код:
$outputLink = 'admin.php' . ($append !== '' ? '?' : '') . $append;
, в котором заменяем admin.php на наше новое имя, т.е. adminochka.php. Получится:
Код:
$outputLink = 'adminochka.php' . ($append !== '' ? '?' : '') . $append;
3. В шаблоне moderator_bar ищем строчку:
Код:
<a href="admin.php" class="acp adminLink"><span class="itemLabel">{xen:phrase admin_control_panel_short}</span></a>
и
Код:
<a href="admin.php?users/moderated" class="userModerationQueue modLink">
и так же заменяем admin.php на наше новое имя, в данном примере adminochka.php

4. Открываем шаблон notice_board_closed и ищем
Код:
<a href="admin.php?options/list/boardActive">{xen:phrase reopen_via_admin_control_panel}</a>
, где так же заменяем admin.php на adminochka.php.

После обновлений нужно пошагово повторить эти операции.

Чтобы не было сложностей при установке дополнений после переименования файла admin.php нужно внести еще такие изменения в library/XenForo/ViewRenderer/HtmlAdmin.php.
 
Последнее редактирование:

gromov

Пользователь
Сообщения
8
Симпатии
0
Баллы
1
#2
не удержался и проверил ваш форум на
adminochka.php
 

SOUL

АдминкА
Администратор
Сообщения
6.116
Симпатии
9.234
Баллы
266
#3
Не буду спорить, что порой бываю наивной Girl_Pinkglassesf3, но, gromov, всегда стараюсь не расслаблятьсяSmile367girl...
 

ta6akus6

Пользователь
Сообщения
8
Симпатии
1
Баллы
3
#4
Maybe you can translate it in English?
 

SOUL

АдминкА
Администратор
Сообщения
6.116
Симпатии
9.234
Баллы
266
#5
Русский язык - красивый и богатый язык! Очень рекомендую начать его изучать!

А Россия, Украина, Белоруссия - страны с богатой культурой, природной красотой, и люди золотые!

Путешествие по этим странам будет незабываемым приключением!Girl_Wink789

И ещё одно предупреждение - хватит, флудить!
 

CyberWarning

rm -rf /dev/null/
Забаненный
Сообщения
38
Симпатии
53
Баллы
13
#6
не вся информация по админке вроде как !

Код:
install\data\templates.xml
<a href="admin.php" class="acp adminLink"><span class="itemLabel">{xen:phrase admin_control_panel_short}</span></a>
<a href="admin.php?users/moderated" class="userModerationQueue modLink">
<a href="admin.php?options/list/boardActive">{xen:phrase reopen_via_admin_control_panel}</a>]]></template>

install\templates\install_complete.php
<p class="text"><a href="../admin.php" class="button primary">Войти в панель управления</a></p>

install\templates\upgrade_complete.php
<p class="text"><a href="../admin.php" class="button primary">Войти в панель управления</a></p>

js\xenforo\full\xenforo.js
XenForo.AutoComplete.defaultUrl = 'admin.php?users/search-name&_xfResponseType=json';

js\xenforo\xenforo.js
XenForo.AutoComplete.defaultUrl=c("html").hasClass("Admin")?"admin.php?users/search-name&_xfResponseType=json":"index.php?members/find&_xfResponseType=json";return XenForo.AutoComplete.defaultUrl};XenForo.AutoComplete.defaultUrl=null;XenForo.UserTagger=function(a){this.__construct(a)};XenForo.UserTagger.prototype={__construct:function(a){this.$textarea=a;this.url=a.data("acurl")||XenForo.AutoComplete.getDefaultUrl();this.acResults=new XenForo.AutoCompleteResults({onInsert:c.context(this,"insertAutoComplete")});

library\XenForo\Link.php
$outputLink = 'admin.php' . ($append !== '' ? '?' : '') . $append;

library\XenForo\ViewRenderer\HtmlAdmin.php
$this->_response->setRedirect('admin.php?tools/run-deferred&redirect=' . urlencode($redirectTarget), 303);
 

SOUL

АдминкА
Администратор
Сообщения
6.116
Симпатии
9.234
Баллы
266
#7
не вся информация по админке вроде как !

Код:
install\data\templates.xml
<a href="admin.php" class="acp adminLink"><span class="itemLabel">{xen:phrase admin_control_panel_short}</span></a>
<a href="admin.php?users/moderated" class="userModerationQueue modLink">
<a href="admin.php?options/list/boardActive">{xen:phrase reopen_via_admin_control_panel}</a>]]></template>

install\templates\install_complete.php
<p class="text"><a href="../admin.php" class="button primary">Войти в панель управления</a></p>

install\templates\upgrade_complete.php
<p class="text"><a href="../admin.php" class="button primary">Войти в панель управления</a></p>

js\xenforo\full\xenforo.js
XenForo.AutoComplete.defaultUrl = 'admin.php?users/search-name&_xfResponseType=json';

js\xenforo\xenforo.js
XenForo.AutoComplete.defaultUrl=c("html").hasClass("Admin")?"admin.php?users/search-name&_xfResponseType=json":"index.php?members/find&_xfResponseType=json";return XenForo.AutoComplete.defaultUrl};XenForo.AutoComplete.defaultUrl=null;XenForo.UserTagger=function(a){this.__construct(a)};XenForo.UserTagger.prototype={__construct:function(a){this.$textarea=a;this.url=a.data("acurl")||XenForo.AutoComplete.getDefaultUrl();this.acResults=new XenForo.AutoCompleteResults({onInsert:c.context(this,"insertAutoComplete")});

library\XenForo\Link.php
$outputLink = 'admin.php' . ($append !== '' ? '?' : '') . $append;

library\XenForo\ViewRenderer\HtmlAdmin.php
$this->_response->setRedirect('admin.php?tools/run-deferred&redirect=' . urlencode($redirectTarget), 303);
Ты имеешь ввиду, что в перечисленных тобой файлах тоже надо переименовать admin.php на своё имя? Только кое-что из перечисленного тобой я уже описывала в первом посте, но всё равно, спасибо Girl_Smile379

И ещё. Я здесь писала это
И обязательно правим по этому мануалу http://xenforotest.ru/threads/propi...jaem-uzhe-proindeks-e-stranicy-iz-indeksa.93/ robots.txt, чтобы страница входа в нашу админку НЕ индексировалась!
Но, если это сделать, то с лёгкостью в этом самом robots.txt можно посмотреть новое имя админки. Поэтому лучше этого не делать, сейчас удалю это из шапки...
 

CyberWarning

rm -rf /dev/null/
Забаненный
Сообщения
38
Симпатии
53
Баллы
13
#8
Ты имеешь ввиду, что в перечисленных тобой файлах тоже надо переименовать admin.php на своё имя? Только кое-что из перечисленного тобой я уже описывала в первом посте, но всё равно спасибо Girl_Smile379
И ещё. Я здесь писала это
Но, если это сделать, то с лёгкостью в этом самом robots.txt можно посмотреть новое имя админки. Поэтому лучше этого не делать, сейчас удалю это из шапки...
Ну тогда сори ,хотел как лучше ;)
 

SOUL

АдминкА
Администратор
Сообщения
6.116
Симпатии
9.234
Баллы
266
#9
Ну тогда сори ,хотел как лучше ;)
Да, наоборот, спасибо!

Я, если честно, делаю только то, что сама в первом посте описывала, просто интересно, насколько целесообразно выполнять то, о чём ты написал, там-то мы вроде мы админку переименовываем, а здесь? - просто суть понять хочется!Thoughtful_Girl3897
 

SrDEN

Местный
Сообщения
115
Симпатии
109
Баллы
43
#10
А зачем переименовывать, если можно сделать так:

Код:
<Files "admin.php"> 
  Order Deny,Allow
  Deny from all
Allow from 127.0.0.1
</Files>
 

SOUL

АдминкА
Администратор
Сообщения
6.116
Симпатии
9.234
Баллы
266
#11
А зачем переименовывать, если можно сделать так:

Код:
<Files "admin.php">
  Order Deny,Allow
  Deny from all
Allow from 127.0.0.1
</Files>
Это ж в .htaccess прописать? Только, если ip динамический, то по идее не прокатит же?

А кто-то вообще рекомендует admin.php удалять, а при необходимости входа в админку загружать этот файл. Только я так не смогу, я постоянно там лазию и туда-сюда тюкаться с этим файлом, мне кажется, ничему рад не будешь!Girl_Smile379
 

MAX3000

Пользователь
Сообщения
10
Симпатии
4
Баллы
3
#13
А не лучше ограничить доступ к файлу admin.php по паролю через .htaccess и .htpasswd?

Генерируем файл .htpasswd, задав логин и пароль.
Можно воспользоваться следующим сервисом:
Код:
http://www.htaccesstools.com/htpasswd-generator/
Сохраняем получившуюся строку в файл .htpasswd.
Дальше нужно поправить .htaccess, который в корне форума, дописав туда следующее:
Код:
<Files admin.php>
AuthUserFile /путь/относительно/корня/веб-сервера/до/файла/.htpasswd
AuthType Basic
AuthName "Какой-нибудь заголовок для диалогового окна авторизации"
Require valid-user
</Files>
Теперь при входе в админку admin.php сначала .htpasswd попросит ввести логин и пароль, а после этого можно будет вводить логин и пароль учетной записи администратора XenForo.

Можно также скомбинировать с переименованием.
 

Juse

Пользователь
Сообщения
2
Симпатии
1
Баллы
3
#14
А не лучше ограничить доступ к файлу admin.php по паролю через .htaccess и .htpasswd?

Генерируем файл .htpasswd, задав логин и пароль.
Можно воспользоваться следующим сервисом:
Код:
http://www.htaccesstools.com/htpasswd-generator/
Сохраняем получившуюся строку в файл .htpasswd.
Дальше нужно поправить .htaccess, который в корне форума, дописав туда следующее:
Код:
<Files admin.php>
AuthUserFile /путь/относительно/корня/веб-сервера/до/файла/.htpasswd
AuthType Basic
AuthName "Какой-нибудь заголовок для диалогового окна авторизации"
Require valid-user
</Files>
Теперь при входе в админку admin.php сначала .htpasswd попросит ввести логин и пароль, а после этого можно будет вводить логин и пароль учетной записи администратора XenForo.

Можно также скомбинировать с переименованием.
Спасибо! Мне нравится данная статья, но оценить почему-то не могу (не знаю как).
 

MAX3000

Пользователь
Сообщения
10
Симпатии
4
Баллы
3
#15
Еще одна идейка крутится - как только проверю отпишу, думаю всем понравится!
 

MAX3000

Пользователь
Сообщения
10
Симпатии
4
Баллы
3
#16
И так, делаем доступ к файлу admin.php по секретной паре SecretKey - SecretKeyValue.
-= 1 =-
admin.php - находится в корне сайта

<?php
if (isset($_GET['SecretKey'])) {
$seckey = $_GET['SecretKey'];
setcookie ("SecretKeyCookie", $seckey); }
else if (isset($_COOKIE['SecretKeyCookie'])) {
$seckey = $_COOKIE['SecretKeyCookie']; }
else {$seckey = ''; }
if ($seckey != 'SecretKeyValue') {

header('Location:'.'index.php');
if (isset($_COOKIE['SecretKeyCookie'])) {
setcookie ("SecretKeyCookie", ""); }
exit; }
else {

$startTime = microtime(true);
$fileDir = dirname(__FILE__);

require($fileDir . '/library/XenForo/Autoloader.php');
XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library');

XenForo_Application::initialize($fileDir . '/library', $fileDir);
XenForo_Application::set('page_start_time', $startTime);

$fc = new XenForo_FrontController(new XenForo_Dependencies_Admin());
$fc->run();
}

-= 2 =-
Login.php - находится в дирректории ..\library\XenForo\Route\PrefixAdmin\

public function actionLogout()
{
$this->_checkCsrfFromToken($this->_input->filterSingle('_xfToken', XenForo_Input::STRING));

XenForo_Application::get('session')->delete();
XenForo_Visitor::setup(0);

if (isset($_COOKIE['SecretKeyCookie'])) {
setcookie ("SecretKeyCookie", ""); }


return $this->responseRedirect(
XenForo_ControllerResponse_Redirect::SUCCESS,
XenForo_Link::buildAdminLink('index')
);
}

Красным цветом выделены вносимые изменения.

Теперь админка будет доступна только по адресу:

Пожалуйста, Войдите или Зарегистрируйтесь для просмотра скрытого текста.

SecretKey=SecretKeyValue


При вводе

Пожалуйста, Войдите или Зарегистрируйтесь для просмотра скрытого текста.


неправильном вводе SecretKey или SecretKeyValue срабатывает переадрисация на index.php

Вместо SecretKey, SecretKeyValue - вставляем свои любые цифро-буквенные значения, которые должны знать только вы.
 

witcherivan

Местный
Сообщения
146
Симпатии
130
Баллы
43
#17
В Media Gallery 1.0.5а столкнулся с такой ошибкой - но обо всём по порядку.
Изначально выполнил манипуляции по защите "Админки" предложенные в этой теме.
Далее изменил размер миниатюр медиа - было предложено: перестроить миниатюры [прикрепил скрин]
И вот тут вылетела закономерная ошибка 404. Так как в адресе ссылки присутствует admin.php
Думаю стоит поискать в фразах и исправить на свой вариант наименования файла.

upd.

Провёл поиск по содержимому в фразах слова: admin.php - нашлось 8 фраз. [прикрепил скрин]
Поправил на свой вариант и всё заработало.
Хотя как вариант можно было перед установкой Media Gallery произвести переименование admin.php в установочном .xml файле.
 

Вложения

Последнее редактирование:

andrey

Проверенный
Сообщения
182
Симпатии
32
Баллы
28
#18
ну я думаю если , переименовывать, то надо весь форум массовым поиском пройтись и поискать admin.php
так будет практичнее,везде и во всех файлах, и не забывать перед обновлением то же проделать с будущей обновой
 

X-Oleg

Местный
Сообщения
588
Симпатии
617
Баллы
93
#19
ну я думаю если , переименовывать, то надо весь форум массовым поиском пройтись и поискать admin.php
так будет практичнее,везде и во всех файлах, и не забывать перед обновлением то же проделать с будущей обновой
Читайте первый пост, там написано что нужно менять, не убавить не прибавить... :)
 

andrey

Проверенный
Сообщения
182
Симпатии
32
Баллы
28
#20
Читайте первый пост, там написано что нужно менять, не убавить не прибавить... :)
Да я то прочел но как же остальные упоминания в файлах о admin.php ? или их больше не где нет?
Я нашел как минимум 10 упоминаний, или они не важны?