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.
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 ….
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.
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
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
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: