Bezpieczeństwo w WordPress
Witajcie w kolejnym tutorialu, w którym pokażę jak możemy zwiększyć bezpieczeństwo w WordPress. Pomimo, że omawiany przeze mnie system CMS jest w sam w…
Witajcie w kolejnym tutorialu, w którym pokażę jak możemy zwiększyć bezpieczeństwo w WordPress. Pomimo, że omawiany przeze mnie system CMS jest w sam w sobie dobrze zabezpieczony, to jednak warto jeszcze wspomnieć o kilku prostych, dodatkowych czynnościach, prostych, lecz jakże ważnych i wartych do omówienia. Poniższą treść naprawdę warto przeczytać, bowiem nawet zaawansowani użytkownicy korzystający z tego popularnego CMS`a zapominają o pewnych operacjach, które mogą poprawić bezpieczeństwo naszych, czasem bardzo rozbudowanych projektów postawionych na tymże systemie.
Plik install.php
Tuż po instalacji WordPress warto usunąć plik instalacyjny (wp-admin/install.php), by ktoś nam po prostu go ponownie nie zainstalował. Nie byłbym w zbyt dobrym humorze gdyby na drugi dzień, pod moją domeną znajdowała się jakaś niecna strona. Tak więc, na wszelki wypadek usuńmy tenże plik z serwera zaraz po instalacji.
Nazwa użytkownika
Domyślną nazwą użytkownika WordPress jest admin – warto tą nazwę zmienić, by utrudnić ewentualny włam, ponieważ hakerzy wykorzystują ów fakt i mają ułatwione zadanie, dlatego gdy zmienimy nazwę, powinno to w pewnym stopniu zabezpieczyć nas przed takim włamaniem.
Dobrze, ale jak to zrobić? – otóż nie możemy zmienić nazwy administratora bezpośrednio z poziomu panelu WordPress. Musimy zrobić to ręcznie – w tym celu logujemy do bazy MySQL, najlepiej poprzez phpMyAdmin. Następnie wybieramy bazę, z której korzysta nasz WordPress – dalej wybieramy tabelę wp_users. To powinno wyglądać mniej więcej tak:
Wchodzimy do edycji rekordu admin (zazwyczaj to jest pierwszy rekord tabeli) i edytujemy wartość pola user_login. Po tej operacji login jest już zmieniony.
Prefixy
Prefiksem w bazie danych nazywamy przyrostek, który używany jest do oznaczania tabel.
Domyślnym prefiksem do tabel WordPress jest zazwyczaj „wp_”, więc to również może być wykorzystane do niecnych celów. Zatem zmieniając prefiks możemy jeszcze bardziej uskutecznić bezpieczeństwo tegoż systemu, a tym samym uniknąć tzw. SQL Injection.
Jeśli mamy już wdrożony projekt, to warto uprzednio zrobić backup bazy MySQL – w panelu dostawcy hostingu lub, co bardziej polecam bezpośrednio z PhpMyAdmin eksportując tabele, które posłużą nam w dalszych krokach. Jeżeli jednak mamy świeżo zainstalowanego WordPress, możemy spokojnie przystąpić do operacji związanych z zmianą prefiksów.
Otwieramy plik wp-config.php z głównego katalogu WordPress. W owym pliku mamy m.in. taką oto linię kodu:
$table_prefix = 'wp_';
Musimy zmienić wartość tej zmiennej, odpowiadającej za prefiks na jakąś inną wartość, najlepiej jakby zawierała litery oraz cyfry, i tak na przykład:
$table_prefix = 'ropucha25_';
Zanim wrzucimy plik na serwer musimy zmienić prefiksy w bazie MySQL. Niestety jest to żmudny proces, więc aby nie przerywać prawidłowego działania naszej strony, utworzymy w tym celu nową bazę, do której zaimportujemy uprzednio wyeksportowane tabele.
Po zaimportowaniu tabel przechodzimy do zmian prefiksów, zatem wybieramy tabelę, klikamy „Operacje”, edytujemy nazwę tabeli zamieniając „wp” na własny prefiks, wygląda to następująco.
W powyższy sposób zmieniamy prefiksy kolejnych tabel – tak jak mówiłem, jest to żmudny proces – są, co prawda wtyczki, które robią to wszystko za nas, lecz osobiście nie polecam z nich korzystać, bowiem czasem bywają problemy.
Po zmianie wszystkich prefiksów, musimy jeszcze wejść do tabeli ropucha25_options (przed zmianą: wp_options), następnie odszukać rekord wp_user_roles (zwykle czwarta strona) i zmienić jego nazwę na ropucha25_user_roles .
W tabeli ropucha25_usermeta musimy podobnie postąpić z rekordami:
- wp_capabilities
- wp_autosave_draft_ids
- wp_user_level
- wp_usersettings
Teraz, gdy już mamy wszystko zrobione w bazie, przechodzimy do pliku wp-config.php i zamieniamy dane starej bazy na nowe, czyli podajemy nazwę, użytkownika i hasło – po czym podmieniamy plik na serwerze. Gotowe, prefiksy zmienione!
Tak jak wspominałem w poprzednim artykule dotyczącym instalacji WordPress. Dzięki zmianie prefiksów możemy posiadać wiele blogów korzystających z jednej bazy.
Dostęp robotów
Warto jeszcze ograniczyć dostęp robotów (tj. Googlebot) do głównych katalogów WordPress, by te roboty nie szperały nam po wszelkich zakamarkach naszej strony.
Tworzymy zatem plik robots.txt, a jego zawartość będzie taka:
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins
Disallow: /wp-content/themes
Disallow: /wp-content/upgrade
Disallow: /wp-content/cache/
Disallow: /cgi-bin
Disallow: */feed/
Disallow: /*/feed/rss/$
Allow: /wp-content/uploads
User-agent: Googlebot-Image
Disallow:
Allow: /*
Zapisujemy i wgrywamy plik na serwer. Należy również pamiętać, by zmienić CHMOD na 667.
Życzę miłej i owocnej pracy z WordPress 😉
Łukasz Czerwiński