Bezpieczeństwo Joomla Email

Joomla! to świetny CMS, który używany jest już od jakiegoś czasu na całym świecie. Z tego powodu, hakerzy często starają się znaleźć sposób aby włamać się na naszą stronę. Oto kilka wskazówek jak zapobiec atakom ze strony hakerów:

Kopia zapasowa strony

Zawsze należy pamiętać, aby regularnie wykonać kopię zapasową witryny i bazy danych. Jeśli nawet uda się komuś włamać zawsze możesz wrócić do starszej wersji witryny. Sprawdź  który z komponentów spowodował lukę i odinstaluj go przed przywróceniem kopii strony.

Zmiana prefiksu bazy danych (jos_)

Najbardziej popularnym sposobem włamań jest SQL injection, próbujące pobrać dane z tabeli jos_users. W ten sposób można  pobrać nazwę użytkownika i hasło super administratora strony. Zmiana domyślnego prefiksu w coś losowego, zapobiegnie większości ataków SQL injection.

Można ustawić prefix bazy danych podczas instalacji Joomla!. Jeśli CMS Joomla jest już zainstalowany, wykonaj następujące czynności:

1. Zaloguj się do zaplecza Joomla,
2. Przejdź do konfiguracji globalnej i wyszukaj ustawienia bazy danych,
3. Zmienić prefiks bazy danych (Przykład: ebuntu _) i naciśnij Zapisz,
4. Przejdź do phpMyAdmin, aby uzyskać dostęp do bazy danych,
5. Przejdź do eksportu, upewnij się że wszystkie wartości ustawione są na domyślne i naciśnij Start. Eksportowanie bazy danych może zająć trochę czasu,
6. Po zakończeniu zaznacz cały kod i skopiuj go do notatnika (lub innego edytora tekstu),
7. W phpMyAdmin, zaznacz wszystkie tabele i usuń je ,
8. W notatniku, ZNAJDŹ I ZAMIEŃ (Ctrl + H) ustaw wyszukiwane jos_ i zmień wszystkie na nowy prefiks (na przykład: ebuntu_). Naciśnij przycisk "Zamień wszystkie",
9. Wybierz wszystko w notatniku i skopiuj do schowka. W phpMyAdmin, przejdź do SQL, wklej i naciśnij Start.

Usunięcie numeru wersji / nazwy rozszerzenia

Większość luk występuje zazwyczaj tylko w określonej wersji  rozszerzenia Joomla. Powiedzmy że posiadamy rozszerzenie o nazwie ROZSZERZENIE wersja numer 2.14. Możesz zmienić wersję i nazwę rozszerzenia w następujący sposób:

1. Pobrać wszystkie pliki z rozszerzeniem z serwera.,
2. Otwórz Dreamweaver,
3. Załaduj dowolny plik z rozszerzenia,
4. Użyj funkcji Szukaj i ustaw wyszukiwanie w folderze do którego skopiowałeś pliki rozszerzenia,
5. Ustaw wyszukiwanie  " ROZSZERZENIE wersja numer 2.14" i naciśnij OK,
6. Po znalezieniu pliku Edytuj go i usuń z niego numer wersji,
7. Prześlij zmienione pliki na serwer i upewnij się że nasze rozszerzenie działa bez zmian.

Wykorzystanie komponentu SEF

Często hakerzy wykorzystują polecenie Google inurl: aby wyszukać miejsc w naszej stronie poprzez które łatwo się włamać. Użyj Artio, SH404SEF lub innego komponentu SEF w celu zmiany zapisu adresów URL i zapobieganiu znalezienia luk w naszej witrynie przez hakerów. Dodatkowo dostaniesz wyższą pozycję w rankingu w Google podczas używając  przyjazne adresy URL.

Uaktualnienie Joomla! i wszystkich rozszerzeń na bieżąco.

To chyba jest dość oczywiste. Zawsze należy sprawdzić czy używasz najnowszych wersji Joomla! i rozszerzeń. Wiele luk jest naprawianych w kolejnych wersjach, również tych poprzez które można włamać się na naszą witrynę.

Używanie odpowiedniego CHMOD dla każdego folderu i pliku

Ustawianie plików lub folderów na CHMOD  777 lub 707 jest konieczne tylko w przypadku gdy skrypt potrzebuje dostęp do zapisu do tego pliku lub katalogu. Wszystkie pozostałe pliki powinny mieć następującą konfigurację:

* pliki PHP: 644
* Pliki konfiguracyjne: 666
* Inne foldery: 755

Usunięcie reszty plików po odinstalowaniu rozszerzenia.

Jeżeli nie używasz już jakiegoś rozszerzenia nie ustawiaj go na UNPUBLISHED, powinieneś odinstalować i usunąć wszystkie pliki pozostałe po deinstalacji. Jeśli tego nie zrobisz, pliki zagrażające włamaniem się na Twoją witrynę będą nadal znajdowały się na serwerze. Pamiętaj więc aby odinstalować całkowicie rozszerzenia z których już nie korzystasz.

Dodanie następujących lini do pliku .htaccess:

########## Begin - Rewrite rules to block out some common exploits

#

# Block out any script trying to set a mosConfig value through the URL

RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [OR]

# Block out any script trying to base64_encode crap to send via URL

RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]

# Block out any script that includes a < script> tag in URL

RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]

# Block out any script trying to set a PHP GLOBALS variable via URL

RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]

# Block out any script trying to modify a _REQUEST variable via URL

RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) [OR]

# Block out any script that tries to set CONFIG_EXT (com_extcal2 issue)

RewriteCond %{QUERY_STRING} CONFIG_EXT([|%20|%5B).*= [NC,OR]

# Block out any script that tries to set sbp or sb_authorname via URL (simpleboard)

RewriteCond %{QUERY_STRING} sbp(=|%20|%3D) [OR]

RewriteCond %{QUERY_STRING} sb_authorname(=|%20|%3D)

# Send all blocked request to homepage with 403 Forbidden error!

RewriteRule ^(.*)$ index.php [F,L]

#

########## End - Rewrite rules to block out some common exploits

Poprawiony: czwartek, 08 kwietnia 2010 21:13