TechBlog - wszystkie artykuły

Jak zwiększyć bezpieczeństwo Wordpress

Aktualizacje - Wordpressa, wtyczek i motywów

Bardzo ważnym jest by aktualizować wtyczki, motywy i samego Wordpressa. 

Aktualizacje zazwyczaj naprawiają wcześniejsze błędy w zabezpieczeniach, błędy z kompatybilnością oraz wprowadzają nowe poprawki, funkcje. 

Niezaktualizowany WP, wtyczka lub motyw mogą posiadać sporą lukę w zabezpieczeniach, co bardzo ułatwi sprawę atakującym naszą stronę. 

Należy pamiętać, żeby zawsze przed aktualizacjami zrobić "back-up" strony łącznie z bazą danych, a jeśli mamy taką możliwość to aktualizacje zrobić najpierw na kopii naszej strony na serwerze testowym. 


Zmiana loginu

Jeśli mamy domyślny, proponowany przez Wordpressa login "admin" lub inny, którego odgadnięcie nie będzie zbyt trudne - konieczna jest jego zmiana. 
Zmiany możemy dokonać dodając nowego użytkownika i usuwając starego, poprzez phpMyAdmin lub np. wtyczkę iThemes Security.

Zmiana id administratora

Domyślnie ID administratora to "1". Warto zmienić na jakiś losowy wysoki numer.
Zmiany możemy dokonać poprzez phpMyAdmin lub np. wtyczkę iThemes Security.

Zmiana hasła na silne

Jeśli mamy łatwe do odgadnięcia, złamania hasło - zmieniamy na silne hasło np. generowane przez WP w panelu użytkownika.

Limit nieudanych logowań

Dobrym sposobem na zabezpieczenie naszej witryny przed atakami typu brute force (próby odgadnięcia loginu i hasła przez boty) jest ustawienie limitu nieudanych logowań z konkretnego adresu IP. Po kilku nieudanych próbach, możemy trwale lub na jakiś czas zablokować możliwość logowania z danego adresu IP. 
Możemy w tym celu skorzystać z wtyczki Wordfence lub Limit Login Attempts Reloaded.

Usunięcie zbędnych wtyczek i motywów

Usuwamy zbędne wtyczki i motywy z których nie korzystamy np. motywy i wtyczki, które dostajemy przy instalacji Wordpressa tj. Twenty Twenty, Aksimet itp.

Zmiana prefiksu tabeli w bazie danych

Domyślnie przy instalacji Wordpressa ustawiany jest przedrostek "wp_".
Jeśli nie zmieniliśmy go przy instalacji, koniecznie powinniśmy to naprawić. 
Możemy dokonać tej zmiany sami przez phpMyAdmin lub skorzystać z wtyczki do tego np. iThemes Security.

Ukrycie katalogu wp-admin (zmiana url'a do logowania)

Zmieniamy domyślny adres logowania do naszej strony ze standardowego /wp-admin.
W tym celu korzystamy z wtyczki np. WPS Hide Login lub polecanej wcześniej iThemes Security. 

Wyłączamy możliwość rejestracji użytkowników

Jeżeli nasza strona nie przewiduje możliwości rejestracji użytkowników, a mamy taką opcję zaznaczoną w panelu (Ustawienia --> Ogólne --> Członkostwo) lepiej ją wyłączyć.

Komentarze tylko od zalogowanych użytkowników

Jeśli nasza strona nie przewiduje możliwości komentowania i nawet nie mamy kodu w szablonie, który odpowiada za komentarze, warto w Ustawieniach --> Dyskusja zaznaczyć opcję, że mogą komentować tylko zarejestrowani i zalogowani użytkownicy. 

Zainteresował Cie ten artykuł?

Oferujemy profesjonalne wsparcie programistów w technologii WEB - napisz do nas!


Wyłączenie edytora plików 

Jeżeli strona jest gotowa, wdrożona to zazwyczaj nie chcemy żeby była możliwość edycji kodu poprzez panel WP. W tym celu do pliku wp-config.php znajdującego się w głównym katalogu naszego Wordpressa dodajemy linijkę: 
PHP
PHP
PHP
PHP
PHP
PHP
PHP
PHP
PHP
PHP
define(DISALLOW_FILE_EDIT, true);

Ukrywamy wersję Wordpressa

Do pliku functions.php motywu z którego korzystamy dodajemy poniższy kod:
PHP
PHP
PHP
PHP
PHP
PHP
PHP
PHP
PHP
PHP
// remove version from head
remove_action('wp_head', 'wp_generator');
// remove version from rss
add_filter('the_generator', '__return_empty_string');
// remove version from scripts and styles
function shapeSpace_remove_version_scripts_styles($src) {
if (strpos($src, 'ver=')) {
$src = remove_query_arg('ver', $src);
}
return $src;
}
add_filter('style_loader_src', 'shapeSpace_remove_version_scripts_styles', 9999);
add_filter('script_loader_src', 'shapeSpace_remove_version_scripts_styles', 9999);
Do pliku .htaccess znajdującego się w głównym folderze dodajemy regułkę:
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
<FilesMatch "readme\.html">
  Order allow,deny
  Deny from all
</FilesMatch>

Przenosimy informacje o bazie danych

Zmieniamy domyślne miejsce informacji o bazie danych z pliku wp-config.php
Zastępujemy kod: 
PHP
PHP
PHP
PHP
PHP
PHP
PHP
PHP
PHP
PHP
define('DB_NAME', 'database');
define('DB_USER', 'user');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
linijką 
PHP
PHP
PHP
PHP
PHP
PHP
PHP
PHP
PHP
PHP
require_once "wp-database-info.php";
Kod który wycięliśmy z wp-config.php dodajemy do powyższego pliku po stworzeniu go.

Blokujemy dostęp do pliku xmlrpc.php

Jeśli nie korzystamy z interfejsu XML-RPC to blokujemy dostęp przez dodanie do .htaccess poniższej regułki: 
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
<files xmlrpc.php>
  order deny,allow
  deny from all
</files>

Blokujemy dostęp do plików .htaccess i wp-config

Do .htacces dodajemy poniższy kod:
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
<files wp-config.php>
  order allow,deny
  deny from all
</files>
<files .htaccess>
  order allow,deny
  deny from all
</files>

Zmiana soli i kluczy Wordpressa na własne

Podmieniamy obecne w pliku wp-config.php na wygenerowane przez nas na stronie https://api.wordpress.org/secret-key/1.1/salt/ 

Zapobiegnięcie wyświetlania listy plików

Do .htaccess dodajemy na końcu linijkę: 
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
Options -Indexes
Sprawdzamy po tej czynności czy strona działa poprawnie, gdyż nie każdy hosting pozwala na taki wpis.

Uprawnienia plików i folderów

Bezpieczeństwo naszej witryny internetowej możemy również poprawić poprzez nadanie odpowiednich uprawnień poszczególnym plikom i całym folderom z naszą stroną, znajdującym się na serwerze.

Jak sprawdzić jakie obecnie są przypisane uprawnienia ? 

Możemy to zrobić sami np. przez klienta ftp lub wtyczkę iThemes Security. W ustawieniach tej wtyczki, w "File Permissions" mamy pokazane obecnie przypisane uprawnienia najważniejszych folderów i plików naszej strony, oraz sugestie jakie te uprawnienia powinny być. 


Uprawnienia (czyli atrybuty CHMOD plików) możemy zmienić przez wspomnianego wcześniej klienta ftp np. Filezilla, Total Commander. 

Darmowe wtyczki poprawiające bezpieczeństwo

iThemes security, Wordfence Security
iThemes security pozwala np: zmienić prefiks w bazie danych, zmienić adres logowania do panelu, zmienić sole, podejrzeć jakie pozwolenia mają najważniejsze pliki/foldery i sugeruje jakie powinny mieć, powiadamia o zmianie w plikach.  
Wordfence pozwala przeskanować stronę i zapewnia firewall.

Robienie kopii zapasowych 

Staramy się robić w miarę często kopie zapasowe naszej strony i bazy danych. Możemy skorzystać w tym celu np. z wtyczki "UpdraftPlus". Pozwala ona np. wykonywać takie kopie w określonych odstępach czasu.

Certyfikat SSL

Certyfikat SSL (Secure Socket Layer) zapewnia  bezpieczeństwo transmisji danych pomiędzy serwerem na którym mamy stronę, a przeglądarką internetową użytkownika. 
Posiadanie SSL zapewnia również lepszą wiarygodność naszej stronie oraz wpływa na lepsze pozycjonowanie przez roboty indeksujące Google.

Cookies Nasza strona internetowa używa plików cookies (tzw. ciasteczka) w celach statystycznych, reklamowych oraz funkcjonalnych. Dzięki nim możemy indywidualnie dostosować stronę do twoich potrzeb. Każdy może zaakceptować pliki cookies albo ma możliwość wyłączenia ich w przeglądarce, dzięki czemu nie będą zbierane żadne informacje. Polityka prywatności