Więcej Tajemnic Pliku .htaccess Dla Joomla! I Wordpress'a
Pora na dokończenie tematu konfiguracji pliku .htaccess, do wykorzystania przez Joomla!, Wordpress czy też stronę internetową www.
Mamy za sobą już wstępne operacje związane z konfiguracją strony internetowej www, czyli przekierowanie 301. Twoja strona Joomla lub Wordpress'a, może już korzystać z adresu wykorzystującego przedrostek www. (Zobacz cz.1)
Po wstępnych informacjach, można zauważyć, że plik .htaccess oferuje ogromne możliwości, a co ważniejsze, do ich opanowania nie jest wymagana żadna wiedza tajemna. Znajomość kilku podstawowych reguł i metaznaków, wystarczy, aby móc swobodnie zarządzać funkcjonowaniem adresów, w serwisie opartym na Joomla czy Wordpress'ie. Ze względu na wielość opcji, w naszych artykułach nie uda się nam przedstawić wszelkich możliwości .htaccess, więc zachęcamy do lektury pełnej dokumentacji serwera Apache oraz samodzielnego eksperymentowania z ustawieniami pliku, a tymczasem przedstawiamy metody na blokowanie.
Blokowanie Pliku .htaccess dla Joomla! i Wordpress'a
Już wcześniej wspominaliśmy, że po ataku hakerskim na Twoją stronę, może pojawić się nadmiarowa ilość plików .htaccess, w podkatalogach strony opartej na Joomla! lub Wordpress'a (generalnie powinien być tylko jeden w katalogu głównym). Żeby powstrzymać destrukcję dokonywaną przez takie pliki możemy, wykorzystać serwer Apache. Jeśli mamy dostęp do pliku konfiguracyjnego Apache, to wprowadzając polecenie
AllowOverride None
zablokujemy działanie plików .htacces, możemy też zmienić nazwę pliku .htacces na nazwę .ustawienia stosując dyrektywę
AccessFileName .ustawienia
i to takim plikiem będziemy sterować konfiguracją katalogów, a dowolny plik .htacces, będzie bezużyteczny. Jeśli nie mamy dostępu do pliku konfiguracyjnego, to można o to poprosić administratora serwera. Zanim to zrobisz, pamiętaj, żeby, zmienić nazwę swojego pliku :).
Uwaga: minimalne ustawienia bezpieczeństwa dla pliku .htacces na serwerze to 644, które ustawiamy poleceniem
Chmod 644 .htaccess
</>
Ustawienie 644 pozwoli na dostęp do pliku przez serwer, ale uniemożliwi jego zmianę z poziomu przeglądarki.
Zanim rozpoczniemy omawiać inne działania ochronne, pora na rozszyfrowanie metaznaków, które stosowane są w wyrażeniach regularnych:
.
Dowolny znak^
Oznacza początek napisu$
Oznacznik końca (c$ znaczy, że ciąg tekstowy musi zakończyć się na c)+
Wystąpi jeden lub więcej razy*
Zero lub więcej wystąpień?
Zero lub jedno wystąpienie!
Negacja wyrażenia(
Rozpoczyna grupowanie (przetwarzanie ciągu znaków, jakby był to pojedynczy element)[
Rozpoczyna klasę znaków, np. dopasowane do przedziału od 0 do 9, to definicja klasy [0-9]
Symbole . [ ^ $ | ( ) * + ? { to znaki o specjalnym znaczeniu, stosowane w wyrażeniach regularnych. Jeżeli potrzebujesz ich użyć jako zwykłych znaków, bez ich funkcji, poprzedź je backslashem ( \ ).
Blokowanie z użyciem .htacces dla Joomla Wordpress'a lub Internetowych Stron WWW
Jeśli znamy źródła ataku na naszą stronę, możemy z powodzeniem zablokować jej dostęp do naszego Joomla lub Wordpress'a, stosując wcześniej wspominany mod_rewrite. Dostęp blokujemy poprzez dopisanie w pliku .htaccess polecenia:
RewriteCond %{HTTP_REFERER} niechciany_adres\.com [NC] RewriteRule .* - [F]
W pierwszej linii wskazujemy adres, z którego nie życzymy sobie wejść na stronę. Druga linia odpowiada za wyświetlanie strony z błędem 403. Prostą, ale dosyć istotną dyrektywą jest Indexes, która zezwala lub uniemożliwieniu przeglądania zawartości katalogów. Dla Ciebie, właściciela strony lepiej, aby odwiedzający nie mieli możliwości swobodnego przeglądania zawartości katalogów, dlatego do pliku .htaccess należy dopisać:
Options -Indexes
Po takim wpisie dowolny użytkownik, który chciałby przejrzeć katalogi z poziomu przeglądarki, zobaczy komunikat o błędzie 403. Jeśli kiedyś zajdzie potrzeba udostępnienia zawartości katalogów, wówczas zmieniamy jeden znak i wpis wygląda następująco:
Options +Indexes
Oczywiście istnieje możliwość wyspecyfikowania elementów, które zezwolimy przeglądać w katalogu, w tym celu należy zastosować dyrektywę IndexIgnore, wymieniając nazwy bądź rozszerzenia plików, których nie chcemy pokazywać:
Options +Indexes IndexIgnore .?* *gif *jpg *.png a*
Powyższy zapis spowoduje, że podczas przeglądania katalogu nie będą widoczne pliki zaczynające się od kropki (np. nasz .htaccess), pliki graficzne (GIF, JPG, PNG) oraz pliki zaczynające się od litery "a".
Inną metodą blokowania niechcianych zapytań, do Twojej strony internetowej www, jest blokowanie adresu IP lub całej grupy adresów, a robimy to wpisami:
Blokada adresu IP
deny from 111.222.333.001
blokowanie dostępu dla wszystkich
deny from all
blokowanie dostępu dla wszystkich, z wyłączeniem określonego adresu
deny from all
allow from 222.111.333.000
dostęp dla wszystkich z wyłączeniem grupy adresów
deny from 255.135.111
allow from all
dobrze jest pilnować kolejności zezwoleń i blokad, ale można to regulować stosując polecenie order
order allow, deny
deny from 111.222.333.444
deny from 111.111.111.222
allow from all
W powyższym fragmencie kodu mimo umieszczenia dyrektywy allow na końcu, dyrektywa zostanie wypełniona zgodnie z oczekiwaniami (brak dostępu dla wyszczególnionych adresów IP i brak ograniczeń dla reszty). Gdyby nie było zapisu order allow, deny, fragment allow from all osłabiłby działanie wcześniejszych.
Inne elementy pliku .htaccess wykorzystywanego przez Joomla, Wordpressa Lub Stronę Internetową WWW
Kilka razy wspominaliśmy już o module przekierowań, czyli mod_rewrite , gdy znajdziesz w pliku zapis:
Options FollowSymLinks RewriteEngine On
oznacza to że, że moduł został włączony.
Lista Kodów Błędów Obsługiwanych Przez Serwer Apache
- 400 Błędne zapytanie
- 401 Dostęp wymaga autoryzacji (np. hasło)
- 402 Wymagana opłata (obecnie niestosowane)
- 403 Zabroniony dostęp ze względu bezpieczeństwa
- 404 Nie znaleziono strony, najpopularniejszy komunikat
- 405 Niedozwolona metoda
- 406 Nie może zwrócić odpowiedzi
- 407 Wymagane uwierzytelnienie do serwera (podobne działanie jak 401)
- 408 Koniec czasu oczekiwania na zapytanie
- 409 Występowanie konfliktu między statusami zasobu
- 410 Usunięto zasób
- 411 Serwer odmawia realizacji ze względu na brak długości
- 412 Jeden z warunków jest nie do spełnienia
- 413 Zapytanie zbyt długie dla serwera
- 414 Adres URL za długi
- 415 Niezrozumiały komunikat dla serwera
- 416 Nie można obsłużyć zakresu zapytania
- 417 Oczekiwana wartość nie do zwrócenia
- 500 Wewnętrzny błąd serwera
- 501 Serwer nie może zwrócić odpowiedzi, ponieważ nie rozumie zapytania
- 502 Błąd bramy, niepoprawna odpowiedź od serwera nadrzędnego
- 503 Niedostępny, w danej chwili serwer jest przeciążony
- 504 Przekroczony czas bramy (brak odpowiedzi od nadrzędnego)
- 505 Nie obsługuje danej wersji HTTP
Jak wykorzystać błąd serwera i przekierowania ? Najczęstszym przypadkiem jest tworzenie własnej strony obsługującej błąd 404. Po utworzeniu ładnej strony 404.html i umieszczeniu jej, w katalogu (Joomla lub Wordpressa'a) /wlasne_bledy wykonujemy przekierowanie strony:
ErrorDocument 404 /wlasne_bledy/404.html
Mamy nadzieję, że artykuły pomogą w codziennym zarządzaniu stroną opartą na Joomla lub Wordpress'ie, a wiele trudnych zadań uda się zrealizować prostymi wpisami w .htaccess . Pokazaliśmy tylko najczęściej wykorzystywane elementy, pozostałe można odnaleźć w dokumentacji dostępnej pod adresem http://httpd.apache.org/docs/2.4/howto/htaccess.html.