![](http://www.jokris.info/components/com_fireboard/template/default/images/english/emoticons/cool.png)
Cześć.
![](http://www.jokris.info/components/com_fireboard/template/default/images/english/emoticons/cool.png)
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?.
![](http://www.jokris.info/components/com_fireboard/template/default/images/english/emoticons/cool.png)
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!.
![](http://www.jokris.info/components/com_fireboard/template/default/images/english/emoticons/laughing.png)
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
![](http://www.jokris.info/components/com_fireboard/template/default/images/english/emoticons/cheerful.png)
), 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.
![](http://www.jokris.info/components/com_fireboard/template/default/images/english/emoticons/laughing.png)
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.
![](http://www.jokris.info/components/com_fireboard/template/default/images/english/emoticons/laughing.png)
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.
![](http://www.jokris.info/components/com_fireboard/template/default/images/english/emoticons/laughing.png)
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
![](http://www.jokris.info/components/com_fireboard/template/default/images/english/emoticons/tongue.png)
:
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.
![](http://www.jokris.info/components/com_fireboard/template/default/images/english/emoticons/cool.png)
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
|
![](http://www.jokris.info/components/com_fireboard/template/default/images/english/emoticons/cool.png)
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".
![](http://www.jokris.info/components/com_fireboard/template/default/images/english/emoticons/laughing.png)
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.
![](http://www.jokris.info/components/com_fireboard/template/default/images/english/emoticons/cool.png)
Pozdrawiam.
Jokris.