
CzeœÌ.

BezpieczeĂąstwo
Joomla! to jest bardzo szerokie i ogĂłlne pojĂŞcie. Pytasz o to, czy instalujÂąc Joomla na serwerze, nikt CiĂŞ nie zhackuje, nie podkradnie lub podrzuci jakieÂś "lewe" pliki?.

To jest tak jak z systemem operacyjnym na komputerze. Jedni bĂŞdÂą uwaÂżaĂŚ, Âże najlepszym programem antywirusowym jest np.
Kaspersky Anti-Virus, a inni Âże
Avast!. I jedni i drudzy majÂą racjĂŞ. Bo duÂżo wolniejszy od
Avasta! Kaspersky Anti-Virus przy zaniedbaniu przez Ciebie porzÂądku na dyskach twardych komputera, moÂże byĂŚ prawie bezuÂżyteczny ( opinie na temat tych programĂłw antywirusowych sÂą oczywiÂście moje, i kaÂżdy moÂże siĂŞ z nimi nie zgadzaĂŚ ). A np.
Avast! doskonale radzi sobie nawet przy "
zapchanych" i
zaÂśmieconych dyskach. Ale teÂż moÂże zdarzyĂŚ mu siĂŞ "
wpadka". Wszystko zaleÂżne jest wiĂŞc nie tylko od samych programĂłw, ale i Âśrodowiska, a wÂłaÂściwie jego stanu w jakim owe programy pracujÂą.
Podobnie jest z
Joomla!. Ja mam wersjĂŞ
Joomla 1.0.7, ale system mam zabezpieczony w kaÂżdy moÂżliwy sposĂłb. A to przez pliki
.htaccess, a to przez specjalne pliki
index.php. Znam wielu ludzi, ktĂłrzy majÂą nowsze wersje
Joomla!, i ciÂągle majÂą jakieÂś
wrzutki na serwer, lub wiele innych objawĂłw ingerencji osĂłb niepowoÂłanych w system plikĂłw
Joomla!.

Generalnie. Jak najwyÂższa wersja
Joomla! ( obecnie dostĂŞpna jedyna stabilna wersja, to
Joomla 1.0.11, lub nieoficjalne wersje, wÂśrĂłd ktĂłrych znajdzie siĂŞ moja modyfikacja CMS-a, wkrĂłtce

), i dbanie o bezpieczeùstwo serwera, stosuj¹c siê do wielu poradników dostêpnych w internecie. Bo có¿ po tym, ¿e ktoœ ma
Joomla 1.0.13 ( najbezpieczniejsza wersja, ale z b³êdami! ), skoro
chmody plikĂłw, ze wzglĂŞdu na
niedba³oœÌ adminów serwera, lub ma³¹ profesjonalnoœÌ i wiedzê tych¿e ludzi musi ustawiaÌ na
777, co zdarza siĂŞ czĂŞsto, i to nawet na pÂłatnych serwerach. Taki
niezabezpieczony dodatkowo plik, oczywiÂście poprzez odpowiednie wpisy, jest
dostĂŞpny praktycznie dla kaÂżdego z zewnÂątrz. To samo dotyczy katalogĂłw. Wystarczy wpisaĂŚ frazĂŞ w Google "
index of/ Joomla" a uzyskasz tysiÂące wynikĂłw z niezabezpieczonymi katalogami, oczywiÂście
Joomla!. A przecieÂż moÂżna w prosty sposĂłb uniemoÂżliwiĂŚ tego rodzaju listowanie katalogĂłw lub folderĂłw na serwerze.

OczywiÂście, podstawowym zabezpieczeniem katalogu jest plik
index.html, z tak zwanym "
pustym body", lub w³asnym ( przyk³ad mo¿esz znaleŸÌ
TUTAJ ). Ale zdarza siĂŞ czasami, Âże nie moÂżemy tam wstawiĂŚ tego pliku.

Tworzymy wĂłwczas plik
.htaccess i dodajemy do niego tylko jeden wpis:
...nic wiĂŞcej. Ten wpis wyÂśle polecenie do
Apache, aby nie zezwalaÂł na indeksowanie zawartoÂści katalogu. I gdzie tylko to jest moÂżliwe, moÂżemy taki plik
.htaccess wrzuciĂŚ do katalogĂłw. PrzykÂład dziaÂłania pliku
.htaccess moÂżesz zobaczyĂŚ na mojej stronie
TUTAJ.

Jeszcze iny sposĂłb, to specjalny plik
index.php, ktĂłry ma za zadanie przekierowanie wÂścibskiego delikwenta np. na
StronĂŞ GÂłowna serwisu. Robimy to w ten sposĂłb:
Kod 1:
Kod: |
<?php
header("Location: /"ĂÂŤĂÂť);
die();
?>
|
ZadziaÂłanie skryptu spowoduje przekierowanie do katalogu wyÂższego poziomu, o ile plik
index.php, ten z cytowanym kodem znajduje siê w podkatalogu root ( g³ównym )
Joomla!. MoÂżesz zobaczyĂŚ dziaÂłanie na nastĂŞpnym przykÂładzie, teÂż z mojej strony
TUTAJ.
Taki kod:
Kod 2:
Kod: |
<?php
header("Location: ../"ĂÂŤĂÂť);
die();
?>
|
...teÂż spowoduje przemieszczenie
intruza do katalogu wy¿szego poziomu. Mo¿emy zastosowaÌ coœ w rodzaju drzewa, w którym to w katalogu po³o¿onym najg³êbiej umieszczamy
index.php z kodu
1 lub
2. NastĂŞpnie w kaÂżdym z katalogĂłw poÂłoÂżonych "wyÂżej" w hierarchii drzewa wrzucamy ten sam plik
index.php z kodu
1 lub
2. Spowoduje to przeskoczenie wszystkich katalogów od najg³êbiej po³o¿onego do np.
Strony G³ównej. Poni¿ej masz linki, obrazuj¹ce strukturê drzewa katalogów. Umieœci³em je w znacznikach
<code> ze wzglêdu na ich d³ugoœÌ. Ale pod nimi mo¿esz zobaczyÌ efekt dzia³ania tej metody. Mo¿emy j¹ nazwaÌ "
Drzewiasty DostĂŞp" lub "
Schodowy DostĂŞp", albo raczej brak dostĂŞpu

:
Kod: |
http://www.jokris.info/foldernajwyzej/foldernizej/foldernizej/foldernizej/foldernizej/foldernizej/
foldernajnizej/
http://www.jokris.info/foldernajwyzej/foldernizej/foldernizej/foldernizej/foldernizej/foldernizej/
http://www.jokris.info/foldernajwyzej/foldernizej/foldernizej/foldernizej/foldernizej/
http://www.jokris.info/foldernajwyzej/foldernizej/foldernizej/foldernizej/
http://www.jokris.info/foldernajwyzej/foldernizej/foldernizej/
http://www.jokris.info/foldernajwyzej/foldernizej/
http://www.jokris.info/foldernajwyzej/
|
...co da efekt przeskoku. SprawdÂź to klikajÂąc na poniÂższe linki:
1 - Najg³êbiej po³o¿ony katalog -
Zobacz.
2 - Katalog wyÂżej -
Zobacz.
3 - Katalog wyÂżej -
Zobacz.
4 - Katalog wyÂżej -
Zobacz.
5 - Katalog wyÂżej -
Zobacz.
6 - Katalog wyÂżej -
Zobacz.
7 - Katalog najwyÂżej poÂłoÂżony -
Zobacz.

Jeszcze jeden sposĂłb, to ochrona dostĂŞpu do katalogĂłw specjalnym plikiem do autoryzacji o nazwie
.htpasswd, oraz plikiem
.htaccess.
ZawartoœÌ pliku
.htaccess powinna ogĂłlnie wyglÂądaĂŚ tak jak na poniÂższym kodzie:
Kod: |
AuthType Basic
AuthName "Katalogu"
AuthUserFile /home/x/x/x/user/www/katalog/.htpasswd
require valid-user
|
/home/x/x/x/user/www - jest to przyk³adowa czêœÌ œcie¿ki dostêpu do pliku
.htpasswd, i oczywiÂście moÂżemy jÂą odczytaĂŚ z pliku
configuration.php ze zmiennej
$mosConfig_absolute_path. JeÂśli chcemy dokÂładnie znaĂŚ adres poÂłoÂżenia pliku
.htpasswd, wpisujemy poniÂższy kod do dowolnego
Notatnika ( najlepiej
Notatnik SP ), i zapisujemy go np. jako
pathinfo.php.
Oto kod pliku
pathinfo.php:
Kod: |
<?php
function dirnamepath(){
$path_dirname = pathinfo(__FILE__);
return $path_dirname['dirname'];
}
$path_htpasswd = dirnamepath();
if (file_exists($path_htpasswd."/.htpasswd"ĂÂŤĂÂť)) {
$file_htpasswd = '.htpasswd';
echo $path_htpasswd."/.htpasswd";
} else {
$file_htpasswd = '';
echo $path_htpasswd;
}
?>
|
Wrzucamy go do katalogu, ktĂłry chcemy zabezpieczyĂŚ, i wywoÂłujemy z adresu przeglÂądarki, dodajÂąc do naszego adresu strony ÂścieÂżkĂŞ do owego katalogu, np:
administrator, czyli ca³oœÌ mo¿e wygl¹daÌ tak ( link oczywiœcie przyk³adowy i nie zadzia³a na moim serwerze, ze wzglêdu na brak owego pliku pod tym adresem ):
http://www.jokris.info/pathinfo.php
Wynikiem zadziaÂłania skryptu bĂŞdzie nasza ÂścieÂżka do katalogu, lub jeÂśli mamy plik
.htpasswd, caÂła ÂścieÂżka ktĂłrÂą wpiszemy do pliku
.htaccess. PoniÂżej juÂż kod wynikowy pliku
.htaccess wykorzystujÂący peÂłnÂą ÂścieÂżkĂŞ z pliku
pathinfo.php :
Kod: |
AuthType Basic
AuthName "Panel administratora Joomla"
AuthUserFile /home/x/x/x/user/www/administrator/.htpasswd
require valid-user
|

Teraz jak powinien wyglÂądaĂŚ plik
.htpasswd. Oto przykÂład pliku
.htpasswd:
HasÂło jest zakodowane ( zaszyfrowane! ), wiĂŞc moÂżesz skorzystaĂŚ z "
Generatora HasÂła dla .htpasswd".

Na koniec kilka uwag. Plik
.htaccess z autoryzacjÂą dostĂŞpu moÂże znajdowaĂŚ siĂŞ w dowolnym katalogu, czyli np. "
/administrator/.htaccess", z tym Âże musi byĂŚ w nim okreÂślona w sposĂłb opisywany powyÂżej ÂścieÂżka do pliku
.htpasswd. Ten ostatni moÂże znajdowaĂŚ siĂŞ w innym katalogu niÂż plik
.htaccess. WaÂżne aby trzymaĂŚ siĂŞ opisanych przeze mnie zasad. To tyle. MyÂślĂŞ Âże juÂż trochĂŞ wiesz o bezpieczeĂąstwie
Joomla!. To naprawdĂŞ porzÂądny CMS.

Pozdrawiam.
Jokris.