Ukrywanie Joomla! część kolejna

Facebooktwittergoogle_plusredditpinterestlinkedintumblrmailFacebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Ha, tym razem was zaskoczę. Będzie nie do końca o ukrywaniu, co o bezpieczeństwie. Przecież nie od dziś wiadomo, że wpisując „/administrator” zobaczycie ekran logowania do Joomla!. A co gdyby tak …. zmienić jego nazwę, ale bez grzebania w kodzie. Owszem można.
1. Zacznij od utworzenia nowego folderu w głównym katalogu strony (np. „myadmin”)
2. Utwórz plik  index.php w tym folderze – w naszym przykładzie użyto „myadmin”, wklej poniższy kod:

<?php

$admin_cookie_code=”1234567890″;
setcookie(„JoomlaAdminSession”,$admin_cookie_code,0,”/”);
header(„Location: /administrator/index.php”);
?>
3. Następnie dodaj poniższy kod do pliku .htaccess który umieścisz w realnym folderze  Joomla administrator

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/administrator
RewriteCond %{HTTP_COOKIE} !JoomlaAdminSession=1234567890
RewriteRule .* – [L,F]

Teraz aby się zalogować do panelu Joomla!, musisz wpisać „http://twojastrona.com/myadmin/”. Kod PHP ustawi cookie, które wygaśnie i pod koniec sesji przekieruje cię  do twojej real administration page. Nikt więcej nie będzie w stanie się zalogować, chyba że zna/pozna twój tajny przekierowujący folder.  Dlatego też nie dawaj domyślnej nazwy „myadmin” na początek, co nie.

Niniejszy wpis jest luźnym tłumaczeniem artykułu www.joomplaza.com.

  • Świetny wpis na pewno wykorzystam 🙂

  • Fajna sprawa, choć nic mega odkrywczego (dla joomlowych wyjadaczy;)). Coś w stylu:
    http://extensions.joomla.org/extensions/access-a-security/site-security/5809
    jednak ciut lepsze 🙂

    Tytuł notki raczej powinien brzmieć „ukrywanie panelu” lub „zabezpieczanie panelu joomli przed niepowołanym dostępem”, gwoli ścisłości 😉 Sorki, że się czepiam początkowo po tytule myślałem, że wpis będzie dotyczył ukrywania całej Joomli np. przed Wappalyzer’em – co robi m.in. SeoPatch.

    p.s. Aha. Link nieaktywny. Zerknij Pawle na:
    http://joomplaza.com/ – zmienili DNS’y i dostajemy wyszukiwarkę zamiast serwisu docelowego.

  • Brok

    Hmmm u mnie nie chce działać i wywala błąd:
    „Parse error: syntax error, unexpected ‚:’ (…)public_html/moja_strona.pl/logowanie/index.php on line 5”

    W 5 linijce mam: header(“Location: /administrator/index.php”);

    Macie jakieś pomysły?

  • w takim razie będę musiał sam przetestować ów przetłumaczony wpis, może gdzieś jakaś literka ….

  • Brok

    Super – byłbym wdzięczny za jakieś info po testach. Osobiście sprawdzałem na 2 moich serwisach, które są na 2 różnych hostingach (linuxpl i prohost) i na obu ten sam błąd. Używam Joomli w wersji 1.5.15

  • w 4 linijce:
    powino być:
    header(„Location:/administrator/index.php”);
    (bez spacji po dwukropku)

  • dzięki.

  • Nie bardzo rozumiem tego rozwiązania. Wprawdzie działa ale zaplecze tak czy owak jest dalej osiągalne bezpośrednio pod starym adresem. Myślałem, ze jeżeli ktoś wybierze
    „www.domena.pl/administrator/” to pokarze się błąd albo coś podobnego.

  • szymel

    u mnie dokladnie to samo, mimo iz nowy katalog dziala, do /administrator rowniez wiec co to za rozwiazanie?

  • Jak się przyjrzeć, to w tym kodzie występuję różne znaki cudzysłowowa, co u mnie okazało się być problemem

    “JoomlaAdminSession”

    “Location: /administrator/index.php”

    Więc kod, który u mnie zadziałał to

    I faktycznie było o spację za dużo

    @szymel i @Fimps

    Rozwiązanie opiera się na cookies, więc raz wejście przez /myadmin ustawi Ci cookies do działania na /administrator . Spróbuj wejść do /administrator przez inną przeglądarkę, albo wyczyść ciastka.

    Jeżeli potrzebujesz więcej zabezpieczeń możesz też dodać dodatkowe logowanie przez .htaccess

    Sam mam problem z czymś innym. Rozwiązanie działa, kiedy próbuję wejść przez subdomena.domena.pl/administrator , natomiast nie dziala, kiedy wchodzę przez domena.pl/katalog/administrator/

    Jedyne co mi przychodzi do głowy, to katalog z joomlą powinien mieć inną nazwę niż podpięta domena.

    Nie mam pojęcia jak to działa, kiedy normalna domena jest podpięta do katalogu, nie mam żadnej wolnej.

  • Kod do poprzedniego to

    $admin_cookie_code=”1234567890″;
    setcookie(„JoomlaAdminSession”,$admin_cookie_code,0,”/”);
    header(„Location:/administrator/index.php”);

  • Ok, zaspamuję dzisiaj te komentarze. Dobrze, że mam neostradę, bo bałbym się o ip bana 😉

    Jeżeli ktoś ma podobne problemy do moich, albo generalnie ma problemy, to podrzucam na szybko zmodyfikowaną metodę.

    1. Tworzymy folder /myadmin i wrzucamy do niego nie jeden, a dwa pliki

    index.php :

    /tag otwierajacy php/

    $admin_cookie_code=”1234567890″;
    setcookie(„JoomlaAdminSession”,$admin_cookie_code,0,”/”);
    header(„Location:/administrator/index.php”);

    /tag zamykajacy php/

    .htaccess

    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/PODFOLDER/myadmin
    RewriteRule .* – [L,F]

    Po drugie tworzymy plik .htaccess w /administrator
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/administrator
    RewriteCond %{HTTP_COOKIE} !JoomlaAdminSession=1234567890
    RewriteRule .* – [L,F]

    RewriteCond %{REQUEST_URI} ^/PODFOLDER/administrator
    RewriteRule .* – [L,F]

    Co się dzieje w praktyce? W praktyce działa podstawowa metoda blokowania dostępu do subdomena.domena.pl/administrator (proszę o testy dla domena.pl/administrator) , a w razie gdyby jakiś cwaniak potrafił dostać się do strony przez domena.pl/katalog blokujemy dostęp zarówno dla domena.pl/katalog/administrator i domena.pl/katalog/myadmin

    Niestety nie jestem w stanie ustawić przekierowania z domena.pl/katalog/myadmin bo w index.php już jest reguła i prowadzi ona do (subdomena.)domena.pl/administrator

  • karol

    u mnie działa na nowym katalogu, ale również na starym katalogu (administrator). Wyczyścilem całą historię przeglądarki… to równiez nie pomaga.

    Czy któś znalazł rozwiązanie?
    pozdrawiam

  • JA

    U mnie niestety nie działa, wywala błąd:
    Parse error: syntax error, unexpected ‚:’ in /home/…/domains/….pl/public_html/…/index.php on line 4

    plik index.php: