WordPress – bezpieczeństwo

Bieg Śnieżnej Pantery
Ze strony biegu.

Nastąpiła krótka przerwa, udało mi się wyjechać na weekend i zawyć razem z wilkami w Biegu Śnieżnej Pantery w Zawoi (dla wilków zrezygnowałem z ZUKa, ale i tak biegałem po śniegu, miejscami było go zdecydowanie ponad pół metra), a tym samym połączyć bieganie z zaakcentowaniem przyjaźni do zwierząt i przyrody. Niemniej to zupełnie inna bajka a zainteresowani wyguglują sobie…

Zanim zacznę projekt właściwy skończę z WordPressem. Jak pisałem to dla mnie zupełnie nowe narzędzie i wstępne zaprzyjaźnienie się z tym CMSem traktuję, jako składnik projektu (no, bo bez DŚP nie było by przygody z WP).

W internecie, ważnym elementem jest dla mnie bezpieczeństwo. Dlatego po zainstalowaniu WordPressa zająłem się zabezpieczeniem swojej strony. Wyguglowałem spory zbiór porad, jak zabezpieczyć WP i poniżej to, co zdecydowałem się zastosować.

  1. Aktualizacje

Tu sprawa wydaje się prosta. WP sam z siebie zapewnia mechanizm automatycznych aktualizacji i mechanizm ten raczej działa. Od chwili zainstalowania WP już dwukrotnie aktualizowały mi się jakieś wtyczki, więc pewnie jest OK. Zawsze jednak warto to obserwować, co też zamierzam czynić.

  1. Prefixy bazy danych

Tabele MySQL (dla mojej instalacji 12 tabel) mają domyślny prefix ‘wp_’. Wszelkie porady sugerują zmianę tegoż, na ciąg znaków trudny do zgadnięcia, co zmniejsza podatność na ataki typu SQL Injection. I od tego postanowiłem zacząć.

  • Zalogowałem się do phpMyAdmin, wybrałem wszystkie tabele i poleceniem „Zamień przedrostek tabeli” zmieniłem na swój przedrostek.

phpMyAdmin tabele

  • Używając odpowiednio poleceń SQL:
SELECT * FROM `xxx_options` WHERE `option_name` LIKE '%wp_%';

Tabela xxx_options

i

SELECT * FROM `xxx_usermeta` WHERE `meta_key` LIKE '%wp_%';

Tabela xxx_usermeta

zaktualizowałem odpowiednie wpisy w tabelach

  • Po wykonaniu tych operacji, zgodnie z oczekiwaniem, strona przestała działać. Naprawiłem to wchodząc przez FTP na serwer i edytując plik wp-config.php. Dokładnie w tym pliku należy zmienić linię:

/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix  = 'xxx_';

(tu okienk z kodem)

  1. Zmiana loginu (user_login) i user_ID

Nie wiem, czy można to ustawić w czasie instalacji WP, niemniej miałem login ‘admin’ i ID równe 1. Znajomość tych danych zwiększa podatność ataku, dlatego zmieniłem je. Pozostając w phpMyAdmin wszedłem do tabeli `xxx_users`, gdzie zmieniłem `ID`, `user_login ` i `user_nickname`.

Tabela xxx_users

Następnie w tabeli `xxx_usermeta` zmieniłem odpowiednio `user_id`.

Tabela xxx_usermeta

  1. SSL

SSL to w zasadzie już wymóg. Podobno lada godzina, również WP przestanie działać bez SSLa. Dla użytkownika serwisu home.pl, sprawa okazała się bardzo prosta. Po wykupieniu klucza i przypisaniu go do domeny zgodnie z instrukcją poszedłem po najmniejszej linii oporu i zainstalowałem wtyczkę: Really Simple SSL. I to wszystko.

  1. Usunięcie numeru wersji

Na mojej instalacji numer wersji się wyświetlał:

<meta name="generator" content="WordPress 4.7.3" />

w celu jego usunięcia znalazłem w katalogu plików zastosowanego motywu plik functions.php i zmodyfikowałem go jak niżej:

<?php remove_action('wp_head', 'wp_generator'); ?>

 

  1. Nie pozwól na wyświetlanie zawartości katalogu wtyczek i skórek

Tutaj nic nie robiłem, bo pracę wykonał instalator WordPressa, niemniej, jeżeli tego nie zrobi to należy w każdym katalogu innym niż główny utworzyć pusty plik index.php, np. o następującej treści.

<?php  // Silence is golden.

 

Na koniec pytanie: czy dostatecznie zabezpieczyłem swojego bloga? czy też ktoś potrafi się włamać? Wiem, że to prowokacja ale jestem ciekawy.

Korzystałem m.in. ze źródeł:

https://pomoc.home.pl/baza-wiedzy/wordpress-metody-zabezpieczania-strony-www/

https://wpninja.pl/artykuly/11-sposobow-na-zabezpieczenie-wordpressa/

Autor: Robert

Biegnąc za marzeniami (nie tylko po górach)....

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *