Czy WordPress jest zły?

Z WordPressem jest jak ze smoczkiem dla dzieci – dużo złego się o nim pisze, ale nie każdemu szkodzi. Jeśli zastanawiasz się, czy swoją nową stronę internetową zrobić w WordPressie, powiem: tak, ale...

Gdy napotykam w internecie artykuł o tym, czemu WordPress jest taki zły i czemu za wszelką ceną trzeba go unikać, zwykle jest to artykuł na firmowym blogu kogoś, kto oferuje konkurencyjny system zarządzania treścią, za który trzeba słono zapłacić. Artykuł ma wykazać, że warto zapłacić za inny system, bo zyskasz bezpieczeństwo, a twoja strona będzie śmigać szybciej niż światło. Tymczasem darmowy WordPress jest wolny jak ślimak i w dodatku stanowi ulubiony cel hakerów, którzy przy śniadaniu, dla rozgrzewki, wyciągają dane klientów ze sklepu postawionego na WordPressie, po czym wyłudzają okup, puszczają cię z torbami i kompromitują w oczach świata.

Czy jest aż tak źle?

Prawdą jest, że ze względu na swoją popularność, WordPress jest częstym celem hakerów. Kod WordPressa jest ogólnie dostępny i każdy może go przeanalizować. W szczególności robią to hakerzy, których praca polega przecież na wynajdywaniu podatności systemu na atak.

Na początku mojej pracy jako web developer byłam źle nastawiona do WordPressa. Przede wszystkim dlatego, że jest napisany w języku programowania PHP (co na początku było skrótem od Personal Home Page, a teraz jest skrótem od – uwaga – PHP: Hypertext Preprocessor). PHP jest uważany za najgorszy język świata i żaden porządny programista nie skala się napisaniem ani linijki kodu w PHP. Tak czytałam i sama też nie chciałam się skalać, ale zmusiła mnie do tego rzeczywistość – klient po prostu chce stronę w WordPressie, chce sam wprowadzać zmiany na stronie i zmieniać obrazki, i nie interesuje go, że PHP (w którym jest napisany WordPress) to najgorszy język świata. Szybko doszłam do wniosku, że napisanie konkurencyjnego systemu zarządzania treścią w Pythonie zajęłoby mi wieki i żaden klient nie chciałby mi za to zapłacić. Z ciężkim sercem postanowiłam zaprzyjaźnić się z WordPressem...

Przy pierwszej stronie skorzystałam z jednego z miliona pięciuset bezpłatnych motywów. Szybko się jednak zirytowałam, bo kod HTML był okropnie nadmiarowy, a wygląd strony i tak mi nie odpowiadał w 100%. Okazało się jednak, że mogę zrobić swój własny motyw i przejąć kontrolę nad stroną. Ha! Od tamtej pory już nigdy nie sięgnęłam po gotowy motyw. Polubiłam WordPressa. A PHP? No cóż, doszłam do wniosku, że tak samo jak najlepszy język w rękach niedoświadczonego programisty może posłużyć do stworzenia badziewia, tak najgorszy język świata nie musi być taki znowu najgorszy w rękach doświadczonego programisty. Poza tym, zarówno PHP, jak i WordPress mają już swoje lata (odpowiednio: 26 i 17), nad każdym pracuje sztab ludzi i co jakiś czas wychodzą aktualizacje poprawiające bezpieczeństwo i funkcjonalność. Jeszcze lepszy argument: NiebezpiecznikSekurak, czyli guru bezpieczeństwa w sieci, używają WordPressa. Więc nie może być aż tak źle.

Na co musisz uważać, decydując się na WordPressa?

Aktualizuj na bieżąco

Przynajmniej raz w miesiącu zaloguj się do panelu administratora i zaktualizuj motywy, wtyczki i samego WordPressa. Prawie nikt tego nie robi, a potem jest płacz i zgrzytanie zębów, gdy nieaktualizowana od dwóch lat strona padnie po zainstalowaniu nowej wtyczki. Masz stronę i dbaj o nią!

Aktualizuj PHP

Jak podaje Wikipedia, ponad połowa stron internetowych opartych na PHP używa starej jego wersji, przez co strona staje się podatna na ataki hakerów. Ludzie wypuszczają nową wersję oprogramowania nie tylko po to, aby dodać jakieś fajne funkcjonalności, ale również po to, aby poprawić bezpieczeństwo i załatać luki, przez które można włamać się do systemu.

Wersję PHP możesz zmienić w swoim hostingu. Poniżej informacje o tym, jak zmienić wersję PHP dla kilku wybranych hostingów:

Usuwaj nieużywane wtyczki i motywy

Maksymalna liczba wtyczek, które widziałam u jednego klienta, to 52. Strona przypominała domek z kart – wystarczyłby jeden podmuch wiatru, żeby wszystko się rozleciało. Instalowanie kolejnych wtyczek miało załatać problemy wynikające z nieaktualizowania strony. Oczywiście część tych wtyczek nie była w ogóle używana, ale była na serwerze, a każda zainstalowana wtyczka lub motyw – nawet nieużywany – może stanowić niebezpieczeństwo lub wykrzaczyć stronę. WPScan Vulnerability Database zawiera informacje o wykrytych podatnościach w WordPressie. Spójrz, ile tego jest! Przejrzyj swoje wtyczki i motywy, i usuń te nieużywane.

Ważna uwaga: kod publicznie dostępnych wtyczek i motywów jest ogólnie znany. Każdy może się z nim zapoznać, a każdy doświadczony haker może dostrzec furtkę, przez którą przeniknie do systemu. Ograniczaj więc liczbę wtyczek i nigdy nie kupuj pirackich wersji z podejrzanych źródeł.

Wymyśl mocne hasło

Niby oczywista oczywistość, trąbią o tym wszędzie, ale w pracy miałam do czynienia z wieloma słabymi hasłami i cud, że strona jeszcze nie została zhakowana. Hakerzy mają listę najpopularniejszych haseł i potrafią włamać się do systemu metodą brute force, czyli wypróbowując różne kombinacje loginów i haseł. W dodatku w WordPressie łatwo jest poznać loginy – mniej roboty dla hakerów...

Zmniejszaj rozmiar zdjęć i usuwaj te nieużywane

Naturalna sprawa, że zanim dobierzesz do wpisu na blogu odpowiednie zdjęcie, to wgrasz ich 10 na serwer. Z każdego wgranego zdjęcia powstaje od kilku do kilkudziesięciu pomniejszonych zdjęć – jedno przycięte do kwadratu, drugie do rozmiaru 16:9, trzecie zostawione w pierwotnych proporcjach, osobne na komórki, na tablety i na desktopy. Niekiedy takie pochodne zdjęcia zajmują kilkadziesiąt megabajtów. Do tego niektórzy wgrywają na serwer zdjęcia świetnej jakości, których rozmiar przekracza 10 MB. Ziarnko do ziarnka i zbierze się miarka. Sprawdź, jaką pojemność ma twój serwer i policz, ile zdjęć na nim zmieścisz. Nie tak znowuż dużo? To usuń od razu te, których nie potrzebujesz, a zanim wgrasz jakieś na serwer, zmniejsz jego rozmiar do 1920 px w poziomie. Inaczej na twojej stronie zaczną się dziać czary-mary.

Rób kopie zapasowe

Tomek prowadził bloga, na którym miał 143 fantastyczne wpisy i masę czytelników. Nie robił kopii zapasowych, bo nie wiedział, że trzeba, a nawet gdyby wiedział, to i tak nie miał czasu. Zawistny Andrzej, który też prowadził bloga, ale miał znacznie mniej czytelników, włamał się do bazy danych Tomka i wykasował wszystkie jego wpisy. Tomek rano obudził się, zalogował do WordPressa, żeby sprawdzić statystyki odwiedzin i ku swojemu przerażeniu zobaczył pustkę.

Nieszczęśliwie dla Tomka hosting, na którym miał stronę (najtańszy na rynku – jedynie 19,99 zł za rok – ale przecież Tomek nie będzie wydawał 200 zł na hosting! Toż to rozbój w biały dzień!), nie robił automatycznie kopii zapasowych bazy danych i plików. 2 lata ciężkiej pracy i zdobywania czytelników przepadły. Być może wpisy można odzyskać gdzieś w odmętach internetu (Internet Archive Wayback Machine to właśnie takie odmęty), ale chyba wyobrażasz sobie grozę sytuacji?

Aby czuć się bezpiecznie, trzeba regularnie wykonywać kopię zapasową plików strony i bazy danych. Jak często – to zależy do tego, jak często publikujesz. Na szczęście wiele hostingów robi automatyczne kopie zapasowe, ale na wszelki wypadek warto co jakiś czas zrobić kopię samemu.

Jeśli chodzi o pliki strony, bezwzględne minimum to kopia katalogu wp-contents/themes (pliki motywów), wp-content/plugins (pliki wtyczek) i wp-content/uploads (zdjęcia i inne media wgrane na serwer). Zaloguj się do swojego hostingu i sprawdź, jak zalogować się przez FTP na swój serwer. Być może otrzymałeś te dane mejlem przy zakładaniu konta w hostingu. Ściągnij program FileZilla, w górnym pasku uzupełnij pola "Host", "Username" i "Password", a dostaniesz dostęp do wszystkich plików strony. Zgraj potrzebne pliki na swój komputer.

Aby zrobić kopię zapasową bazy danych, zaloguj się do phpMyAdmin. Dane do logowania znajdziesz, logując się do hostingu. Kliknij na bazę, którą chcesz wyeksportować, w górnym pasku kliknij "Eksport" i "Dostosuj". Baza zapisze się w jednym pliku na twoim komputerze. Aby w razie potrzeby wgrać ją na serwer, znowu logujesz się do phpMyAdmin i klikasz "Import".

Dbaj o swoją stronę, zanim zacznie się z nią dziać coś dziwnego, i nie myśl, że ataki hakerskie ciebie nie dotyczą. Jeśli twoja strona zbiera dane osobowe, zabierz się za aktualizację i porządki już dziś, bo konsekwencje wycieku tych danych mogą być bardzo przykre.