Отключение алиасинга ссылок для входа в админку Ghost

Для входа в административную панель Ghost используется адрес /ghost. Однако, если посмотреть исходные коды движка, то можно увидеть что любой из адресов ghost-admin, admin, wp-admin, dashboard, signin, login будет перенаправляться на /ghost. Очевидно, это сделано ради удобства пользователей.

Однако не всем это нужно. Например, я считаю подобную функциональность излишней и предпочитаю её отключить, так как регулярно в логах сервера вижу запросы автоматических роботов, которые перебирают различные адреса на вход, и пробуют ссылки на адреса административных панелей wordpress, phpmyadmin, и кучи других сервисов. Ждать ничего хорошего от них не приходится. Не вижу никаких причин облегчать им работу.

Соответственно, для себя использую патч, который отключает алиасинг ссылок. Он накладывается на файл core/server/routes/frontend.js:

diff --git a/core/server/routes/frontend.js b/core/server/routes/frontend.js
index 5407fa3..59f128a 100644
--- a/core/server/routes/frontend.js
+++ b/core/server/routes/frontend.js
@@ -21,9 +21,9 @@ frontendRoutes = function frontendRoutes() {
     });

     // redirect to /ghost and let that do the authentication to prevent redirects to /ghost//admin etc.
-    router.get(/^\/((ghost-admin|admin|wp-admin|dashboard|signin|login)\/?)$/, function redirectToAdmin(req, res) {
-        utils.redirect301(res, subdir + '/ghost/');
-    });
+    //router.get(/^\/((ghost-admin|admin|wp-admin|dashboard|signin|login)\/?)$/, function redirectToAdmin(req, res) {
+    //    utils.redirect301(res, subdir + '/ghost/');
+    //});

     // Post Live Preview
     router.get('/' + routeKeywords.preview + '/:uuid', frontend.preview);

При обновление движка Ghost приходится заново накладываться патч. Впрочем, если хранить релизы Ghost под контролем git или иной системы версий, то можно после обновления исходников сделать что-то типа git rebase -i или git cherry-pick или git merge, в общем масса вариантов.

Comments

comments powered by Disqus