Bezpieczeństwo WordPressa jako proces
Opublikowany: 2022-03-10( Ten artykuł jest uprzejmie sponsorowany przez Sucuri .) Bezpieczeństwo WordPress nie ma dobrej reputacji. Według badań przeprowadzonych na stronach +40.000 WordPress przez Alexę, ponad 70% wszystkich witryn WordPress zawiera jakąś lukę. Jeśli tworzysz motywy lub wtyczki WordPress — lub używasz WordPressa do swoich witryn — ta liczba powinna Cię przestraszyć.
Możesz wiele zrobić, aby upewnić się, że nie jesteś częścią 70%, ale wymaga to więcej pracy niż samo zainstalowanie wtyczki lub uniknięcie ciągu. Wiele porad zawartych w tym artykule pochodzi z przewodnika Sucuri na temat bezpieczeństwa WordPress i wieloletniego osobistego doświadczenia.
Czy WordPress nie jest bezpieczny?
WordPress ma największy udział w rynku wśród systemów zarządzania treścią i 30% wśród najpopularniejszych 10 milionów witryn w sieci. Ten rodzaj sukcesu sprawia, że jest to duży cel hakerów. WordPress nie jest mniej bezpieczny niż inne systemy zarządzania treścią — jest po prostu bardziej skuteczny.
Luki w rdzeniu WordPressa są odpowiedzialne za mniej niż 10% wszystkich hacków WordPress. Większość z nich pochodzi z nieaktualnych instalacji WordPressa. Liczba włamań, które mają miejsce w przypadku rzeczywistych luk w zabezpieczeniach w aktualnych wersjach (znanych również jako exploity dnia zerowego) w rdzeniu WordPressa, stanowi niewielki procent wszystkich włamań.
Pozostałe zainfekowane strony zostały spowodowane przez wtyczki, motywy, hosting i użytkowników. A Ty, jako programista WordPress, masz nad nimi kontrolę. Jeśli wydaje ci się to dużym problemem, mogę polecić plan agencyjny Sucuri. W przeciwnym razie dowiedzmy się, jak sami radzić sobie z bezpieczeństwem WordPressa!
Kto cię atakuje i dlaczego?
Pozbądźmy się najpierw mitu: mała witryna WordPress nadal jest atrakcyjnym celem dla hakerów. Ataki na poziomie osobistym są bardzo rzadkie. Większość zhakowanych witryn WordPress jest automatycznie atakowana przez bota lub botnet.
Boty to programy komputerowe, które nieustannie wyszukują strony internetowe do zhakowania. Nie obchodzi ich, kim jesteś; po prostu szukają słabości w twojej obronie. Botnet łączy moc obliczeniową wielu botów, aby sprostać większym zadaniom.
Hakerzy szukają przede wszystkim sposobu na wejście na serwer, aby mogli wykorzystać moc obliczeniową serwera i wykorzystać go do innego celu lub celu. Hakerzy chcą Twojego serwera z następujących powodów.
Wysyłanie spamu
Spam stanowi około 60% wszystkich wiadomości e-mail i musi być skądś wysłany. Wielu hakerów chce uzyskać dostęp do twojego serwera poprzez wadliwą wtyczkę lub starą wersję rdzenia WordPressa, aby mogli zmienić twój serwer w maszynę do spamowania.
Atakowanie innych stron internetowych
Rozproszone ataki typu „odmowa usługi” wykorzystują wiele komputerów do zalania witryny tak dużym ruchem, że nie mogą nadążyć. Ataki te są bardzo trudne do złagodzenia, zwłaszcza gdy są wykonane prawidłowo. Hakerzy, którzy włamują się na Twój serwer, mogą dodać go do puli serwerów, aby atakować witryny.
Kradzież zasobów
Kopanie kryptowalut jest obecnie bardzo popularne, ale wymaga dużej mocy obliczeniowej. Hakerzy, którzy nie chcą wydawać dużych pieniędzy na farmę serwerów, włamują się do niezabezpieczonych witryn WordPress i uzyskują dostęp do serwerów lub odwiedzających witrynę i kradną moc obliczeniową.
Podbijanie wyników SEO
Szczególnie popularnym hackiem dla WordPressa jest uzyskanie dostępu do jego bazy danych i dodanie garści (ukrytego) tekstu pod każdym postem, który prowadzi do innej witryny. To naprawdę szybki sposób na podbicie wyniku SEO, chociaż Google coraz bardziej zwraca uwagę na to zachowanie, a czarne listy rosną.
### Kradzież danych
Dane są cenne, zwłaszcza gdy są powiązane z profilami użytkowników i informacjami o handlu elektronicznym. Zdobycie tych danych i ich sprzedaż może przynieść atakującemu spory zysk.
Dlaczego bezpieczeństwo ma znaczenie?
Oprócz tego, że nie daje przestępcom satysfakcji, istnieje wiele powodów, dla których Twoja witryna powinna być domyślnie bezpieczna. Po oczyszczeniu i uporaniu się z wieloma hackami do WordPressa mogę z pewnością powiedzieć, że nigdy nie pojawiają się one w dogodnym czasie. Sprzątanie może zająć wiele godzin i będzie kosztować zarówno Ciebie, jak i Twojego klienta.
Aby ponownie uruchomić zhakowaną witrynę WordPress, musisz usunąć i zastąpić każdy fragment kodu innej firmy (w tym rdzeń WordPress); przeszukuj swój własny kod linia po linii i wszystkie inne foldery na serwerze, aby upewnić się, że nadal są czyste; sprawdzić, czy nieuprawnieni użytkownicy nie uzyskali dostępu; i zamień wszystkie hasła w WordPressie, na swoim serwerze i w bazie danych.
Wiele usług może wyczyścić witrynę WordPress za Ciebie, ale zapobieganie jest o wiele lepsze na dłuższą metę.
Oprócz kosztów sprzątania, hacki mogą również sporo kosztować w przypadku utraty sprzedaży lub potencjalnych klientów. Hacki przesuwają Cię niżej w rankingu wyszukiwania, co skutkuje mniejszą liczbą odwiedzających i mniejszą liczbą konwersji.
Bardziej niż koszty finansowe, zhakowanie szkodzi Twojej reputacji. Odwiedzający odwiedzają Twoją witrynę, ponieważ Ci ufają. Zhakowanie niszczy twoją reputację, a naprawa tego zajmuje dużo czasu.
Istnieje również realna możliwość problemów prawnych, zwłaszcza jeśli masz klientów w UE, gdzie przepisy RODO wejdą w życie latem 2018 r. Nowe przepisy przewidują wysoką grzywnę za naruszenia danych, które nie są odpowiednio obsługiwane.
Pieniądze, reputacja i problemy prawne: Złe zabezpieczenia mogą Cię dużo kosztować. Zainwestowanie trochę czasu w przygotowanie witryny, kodu i zespołu z myślą o bezpieczeństwie na pewno się opłaci.
Dowiedzmy się, jak możemy zapobiec całej tej nieprzyjemności.
Triada CIA
Triada CIA to podstawowe ramy dla każdego projektu bezpieczeństwa cyfrowego. Oznacza poufność, integralność i dostępność. CIA to zbiór zasad, które ograniczają dostęp do informacji właściwym stronom, zapewniają wiarygodność i dokładność informacji oraz gwarantują niezawodny dostęp do tych informacji.
W przypadku WordPressa struktura CIA sprowadza się do następujących rzeczy.
Poufność
Upewnij się, że zalogowani użytkownicy mają przypisane odpowiednie role, a ich możliwości są kontrolowane. Daj użytkownikom tylko minimalny dostęp, jakiego potrzebują, i upewnij się, że informacje administratora nie wyciekną do niewłaściwej strony. Możesz to zrobić, wzmacniając obszar administracyjny WordPressa i uważając na nazwy użytkowników i dane uwierzytelniające.
Integralność
Wyświetlaj dokładne informacje w swojej witrynie i upewnij się, że interakcje użytkowników w witrynie przebiegają prawidłowo.
Akceptując żądania zarówno na stronie frontowej, jak i końcowej, zawsze sprawdzaj, czy intencja odpowiada rzeczywistej akcji. Gdy dane są publikowane, zawsze filtruj dane w kodzie pod kątem złośliwej zawartości za pomocą czyszczenia i znaków specjalnych. Upewnij się, że spam zostanie usunięty, korzystając z usługi ochrony przed spamem, takiej jak Akismet.
Dostępność
Upewnij się, że Twój WordPress, wtyczki i motywy są aktualne i hostowane na niezawodnym (najlepiej zarządzanym) hoście WordPress. Codzienne automatyczne kopie zapasowe pomagają również zapewnić, że Twoja witryna pozostanie publicznie dostępna.
Wszystkie trzy elementy opierają się o siebie w celu wsparcia. Integralność kodu nie będzie działać samodzielnie, jeśli poufne hasło użytkownika można łatwo ukraść lub odgadnąć. Wszystkie aspekty są ważne dla solidnej i bezpiecznej platformy.
Bezpieczeństwo to dużo ciężkiej pracy. Oprócz pracy, którą można wykonać w kodzie, w tym frameworku jest ogromny element ludzki. Bezpieczeństwo to ciągły proces; nie można go rozwiązać za pomocą jednej wtyczki.
Część 1: Uczciwość — niczego nie ufaj
Zweryfikuj zamiar działań użytkownika i integralność danych, którymi się zajmujesz. Wyrzuć swojego wewnętrznego hipisa za drzwi. Niczego nie można ufać w Internecie, więc sprawdź wszystko, co robisz, pod kątem ewentualnych złośliwych intencji.
Walidacja i sanityzacja danych
WordPress doskonale radzi sobie z danymi. Zapewnia to, że każda interakcja jest weryfikowana, a każdy bit danych jest oczyszczony, ale to tylko w rdzeniu WordPressa. Jeśli tworzysz własną wtyczkę lub motyw, a nawet po prostu sprawdzasz fragment kodu innej firmy, wiedza, jak to zrobić, jest niezbędna.
//Cast our variable to a string, and sanitize it. update_post_meta( $post->ID, 'some-meta', sanitize_text_field( (string)$_POST['some-meta'] ) ); //Make sure our variable is an absolute integer. update_post_meta( $post->ID, 'some-int', absint( $_POST['int'] ) );
W tym przykładzie dodaliśmy dwa fragmenty danych do wpisu WordPress za pomocą update_post_meta. Pierwszy to ciąg; więc rzutujemy go jako ciąg znaków w PHP i usuwamy niechciane znaki i tagi za pomocą sanitize_text_field
, jednej z wielu funkcji oczyszczania WordPressa.
Dodaliśmy również liczbę całkowitą do tego posta i użyliśmy absint, aby upewnić się, że jest to bezwzględna (i nieujemna) liczba całkowita.
Korzystanie z podstawowych funkcji WordPressa, takich jak update_post_meta
, jest lepszym pomysłem niż bezpośrednie korzystanie z bazy danych WordPress. Dzieje się tak, ponieważ WordPress sprawdza wszystko, co musi być przechowywane w bazie danych pod kątem tzw. iniekcji SQL. Atak typu SQL injection uruchamia złośliwy kod SQL za pośrednictwem formularzy w Twojej witrynie. Ten kod manipuluje bazą danych, aby na przykład zniszczyć wszystko, ujawnić dane użytkowników lub utworzyć fałszywe konta administratorów.
Jeśli kiedykolwiek będziesz musiał pracować z niestandardową tabelą lub wykonać skomplikowane zapytanie w WordPressie, użyj natywnej klasy WPDB i użyj funkcji prepare
we wszystkich zapytaniach, aby zapobiec atakom typu SQL injection:
$tableName = $wpdb->prefix . “my_table”; $sql = $wpdb->prepare( “SELECT * FROM %s”, $tableName ); $results = $wpdb->get_results( $sql );
$wpdb->prepare przechodzi przez każdą zmienną, aby upewnić się, że nie ma szans na atak typu SQL injection.
Ucieczka
Ucieczka z wyjścia jest tak samo ważna jak odkażanie wejścia. Sprawdzanie poprawności danych przed ich zapisaniem jest ważne, ale nie możesz mieć 100% pewności, że nadal są bezpieczne. Nie ufaj niczemu. WordPress używa wielu filtrów, aby umożliwić wtyczkom i motywom zmianę danych w locie, więc istnieje duża szansa, że Twoje dane zostaną również przeanalizowane przez inne wtyczki. Ucieczka danych przed dodaniem ich do motywu lub wtyczki to mądra rzecz.
Ucieczka ma głównie na celu zapobieganie atakom XSS (cross-site scripting). Ataki XSS wprowadzają złośliwy kod do frontonu Twojej witryny. Dodatkową zaletą unikania danych jest to, że możesz mieć pewność, że Twoje znaczniki są nadal aktualne.
WordPress ma wiele funkcji ucieczki. Oto prosty przykład:
<a href=“<?php echo esc_url( $url );?>” title=“<?php echo esc_attr( $title );?>”><?php echo esc_html( $title );?></a>
Ucieknij tak późno, jak to możliwe. Gwarantuje to, że masz ostatnie słowo w sprawie swoich danych.
Zabezpieczanie żądań
Żądania administratora WordPressa są już dość bezpieczne, jeśli masz włączony SSL i jeśli masz przyzwoitego hosta, ale nadal istnieją pewne luki. Musisz sprawdzić intencje użytkownika i potwierdzić, że przychodzące żądanie zostało wykonane przez faktycznie zalogowanego użytkownika.
WordPress weryfikuje intencje za pomocą liczb jednorazowych. Jednorazowa liczba (lub „liczba użyta tylko raz”) nie jest tak naprawdę dokładnym opisem tego interfejsu API w WordPressie. Używa nie tylko liczb i jest znacznie bardziej podobny do tokena fałszowania żądań między witrynami (CSRF), który można znaleźć w każdym nowoczesnym frameworku sieciowym. Te tokeny uniemożliwiają hakerom powtarzanie żądań. To o wiele więcej niż tylko jednorazówka, ale WordPress lubi kompatybilność wsteczną, więc nazwa się utknęła.
Nonces są wysyłane wraz z każdym zagrożonym żądaniem, które zgłasza użytkownik. Są one dołączone do adresów URL i formularzy i zawsze należy je sprawdzić po stronie odbiorcy przed wykonaniem żądania. Możesz dodać jednorazową wartość do formularza lub adresu URL. Oto przykład użyty w formularzu:
<form method= “post”> <!-- Add a nonce field: --> <?php wp_nonce_field( 'post_custom_form' );?> <!-- other fields: → ... </form>
W tym przypadku używamy prostej funkcji pomocniczej wp_nonce_field()
, która generuje dla nas dwa ukryte pola, które będą wyglądać tak:
<input type="hidden" name="_wpnonce" value="e558d2674e" /> <input type="hidden" name="_wp_http_referer" value="/wp-admin/post.php?post=2&action=edit" />
Pierwsze pole sprawdza intencję za pomocą wygenerowanego kodu z 'post_custom_form'
, który przekazaliśmy do funkcji. Drugie pole dodaje referrer w celu sprawdzenia, czy żądanie zostało wykonane z poziomu instalacji WordPress.
Przed przetworzeniem zadania na drugim końcu formularza lub adresu URL, sprawdź numer jednorazowy i jego ważność za pomocą wp_verify_nonce
:
if( wp_verify_nonce( $_REQUEST['_wpnonce'], 'post_custom_form' ) == false ){ wp_die( “Nonce isn\'t valid” ); }
Tutaj sprawdzamy numer jednorazowy z naszą nazwą akcji, a jeśli nie pasuje, przestajemy przetwarzać formularz.
Kod strony trzeciej
Wtyczki i motywy innych firm są siedliskiem hacków. Są również najtrudniejszym orzechem do zgryzienia, zapewniając bezpieczeństwo Twojej witryny.
Większość hacków do WordPressa jest powodowana przez wtyczki, motywy i nieaktualne kopie WordPressa . Żadne oprogramowanie nie jest w 100% bezpieczne, ale wiele wtyczek i motywów nie zostało od jakiegoś czasu zaktualizowanych przez ich programistów lub na początku nie było bezpiecznych.
Mniej kodu oznacza mniej hakowania. Tak więc przed zainstalowaniem kolejnej wtyczki zadaj sobie pytanie, czy naprawdę jej potrzebujesz. Czy istnieje inny sposób rozwiązania tego problemu?
Jeśli masz pewność, że potrzebujesz wtyczki lub motywu, oceń to dokładnie. Spójrz na ocenę, datę „ostatniej aktualizacji” i wymaganą wersję PHP podczas przeglądania katalogu wtyczek WordPressa. Jeśli znalazłeś to, czego szukasz i wszystko wydaje się działać, poszukaj wszelkich wzmianek na zaufanym blogu poświęconym bezpieczeństwu, takim jak Sucuri lub WordFence.
Inną opcją jest zeskanowanie kodu i upewnienie się, że zawiera on odpowiednie rzeczy, warunki sanitarne i ucieczki; są to zwykle oznaki dobrze napisanego i bezpiecznego kodu. Nie musisz znać PHP ani robić pełnego przeglądu kodu. Prostym i szybkim sposobem zweryfikowania prawidłowego korzystania z funkcji bezpieczeństwa WordPressa jest przeszukanie kodu wtyczki pod kątem następujących ciągów:
-
esc_attr
-
esc_html
-
wp_nonce_field
-
wp_nonce_url
-
sanitize_text_field
-
$wpdb->prepare
Wtyczka może nadal być bezpieczna, jeśli nie zawiera wszystkich tych ciągów, ale jeśli nie zostanie znaleziona żadna lub niewielka liczba tych ciągów, jest to czerwona flaga. Jeśli znajdziesz lukę w zabezpieczeniach, podziel się nią z twórcą na osobności i daj mu czas na jej naprawienie.
Śledzenie luk w przestrzeni wtyczek WordPressa staje się łatwiejsze dzięki inicjatywom takim jak wpvulndb.
Uwaga: Niektóre motywy zawierają wersje wtyczek wraz z ich kodem. Jest to objaw tego, że WordPress nie ma świetnego, gotowego do zarządzania zależnościami, ale jest to również oznaka bardzo słabo napisanego motywu. Zawsze unikaj tych motywów, ponieważ zawierają one bazy kodu, których nie można aktualizować.
Motywy i wtyczki rzadko zawierają kod napisany przez tylko jednego programistę. Composer i NPM tak bardzo ułatwiły poleganie na innych bibliotekach, że stał się popularnym wektorem ataku. Jeśli pobierasz gotowy motyw WordPress lub wtyczkę, to naprawdę nie jest problemem, ale jeśli pracujesz z narzędziami korzystającymi z Composera lub NPM, nie zaszkodzi sprawdzić ich zależności. Możesz sprawdzić zależności Composera za pomocą bezpłatnego narzędzia interfejsu wiersza poleceń (CLI) firmy SensioLabs. Usługa taka jak Snyk (z której możesz korzystać za darmo, ale która ma również opcje premium) umożliwia sprawdzenie każdej zależności w Twoim projekcie.
Część 2: Dostępność: Keep It Simple
Twoim głównym celem jest utrzymanie Twojej witryny online bez przerw. Nawet przy najwyższej klasy zabezpieczeniach nadal możesz mieć kłopoty. Kiedy tak się stanie, świetna kopia zapasowa oszczędzi Ci dużego bólu głowy.
Aktualizacje
Open-source nie może istnieć bez aktualizacji. Większość ataków na witryny WordPress ma miejsce na nieaktualnych wersjach podstawowego oprogramowania lub wtyczek. Aktualizacje bezpieczeństwa rdzenia WordPressa są teraz obsługiwane automatycznie (chyba że wyłączyłeś to, potworze!), ale aktualizacje bezpieczeństwa we wtyczkach to inna historia.
Aktualizacja jest zwykle bezpieczna w przypadku popularnych, zaufanych wtyczek, ale wszystkie wtyczki powinny zostać przetestowane przed udostępnieniem ich w Twojej witrynie. Narzędzia takie jak WP CLI znacznie ułatwiają aktualizowanie wszystkiego. Główny programista WordPress, Mark Jaquith, miał doskonały wpis na blogu na temat automatycznej, ale stopniowej aktualizacji wszystkich wtyczek, dzięki czemu można odfiltrować ewentualne błędy.
Użytkownicy, role i możliwości
„Dostępność” w triadzie CIA ma związek z uzyskaniem informacji we właściwych rękach. Naszym głównym priorytetem w tym zakresie jest ograniczanie możliwości użytkowników zaplecza. Nie dawaj każdemu konta administratora.
Konto administratora w WordPressie jest niezwykle wydajne. Istnieje nawet opcja w waniliowym WordPressie, aby zmienić całą bazę kodu z poziomu konta administratora WordPress. (Jeśli jest to dla Ciebie nowe i nie wyłączyłeś tego, zrób to.)
System ról i możliwości w WordPress jest potężny i bardzo łatwy do zmiany w kodzie. Pracując z WordPressem tworzę wiele nowych ról. Główną korzyścią z tego jest to, że masz pełną kontrolę nad tym, do których części systemu mają dostęp różni użytkownicy, ale kolejną ogromną korzyścią jest to, że uniemożliwia kodowi stron trzecich zmianę standardowych funkcji rdzenia WordPress.
WordPress zwykle obsługuje pocztę e-mail za pośrednictwem serwera, na którym się znajduje, ale to sprawia, że cała poczta jest całkowicie zależna od serwera, na którym działa. Chroń swoje e-maile przed przechwytywaniem i postrzeganiem ich jako spam, korzystając z usługi SMTP. Dostępnych jest wiele opcji wtyczek, aby upewnić się, że cała Twoja poczta jest wysyłana przez bezpieczne połączenie SMTP.
Będziesz jednak potrzebował dostępu do ustawień DNS nazwy domeny, aby dodać rekord Sender Policy Framework (SPF). Wszystkie dobre usługi SMTP zapewnią dokładny rekord, który należy dodać. Rekord SPF gwarantuje, że Twoja usługa SMTP jest autoryzowana przez domenę do wysyłania wiadomości e-mail w jej imieniu.
Monitorowanie
Monitorowanie Twojej strony internetowej to zadanie 24/7, które można w pełni zautomatyzować. W przypadku WordPressa interesuje nas czas pracy i integralność plików.
Monitorowanie dostępności to zwykle coś, co zrobi za Ciebie dobry gospodarz. Narzędzia takie jak Uptime Robot zapewniają jeszcze większe bezpieczeństwo. Twoje pierwsze 50 stron internetowych jest całkowicie bezpłatnych.
Jeśli chodzi o integralność plików , jeśli haker uzyska dostęp do Twojego serwera, może zmienić Twój kod.
W takim przypadku wtyczki są odpowiedzią na Twój problem. Sucuri ma świetną wtyczkę audytu. Sprawdza wszystkie pliki w Twojej instalacji w obszernej bazie danych znanego złośliwego kodu. Sprawdza również, czy rdzeń WordPressa jest nadal w 100% rdzeniem WordPressa, i daje ostrzeżenie, jeśli doszło do naruszenia, dzięki czemu możesz to naprawić tak szybko, jak to możliwe.
Kopie zapasowe
Ostatecznym zabezpieczeniem przed awarią każdego procesu bezpieczeństwa są automatyczne kopie zapasowe. Większość dobrych hostów zrobi to za Ciebie, ale istnieją inne dobre opcje, jeśli Twój host nie oferuje kopii zapasowych. Automattic tworzy jeden o nazwie VaultPress, a narzędzia, takie jak BackupBuddy, tworzą kopię zapasową na koncie Dropbox lub wiadrze Amazon S3.
Większość niezawodnych usług w przestrzeni kopii zapasowej WordPress to usługi premium lub wtyczki premium. W zależności od tego, czy chcesz w pełni kontrolować swoje dane, możesz zamiast usługi korzystać z wtyczki dostarczanej z hostem w chmurze. Każdy z nich jest jednak wart każdego grosza.
Hosting
WordPress nie jest jedynym oprogramowaniem działającym na Twoim serwerze. Mnóstwo wektorów ataku jest otwartych, gdy korzystasz z kiepskiego hostingu. W rzeczywistości zły hosting jest głównym powodem, dla którego WordPress nadal obsługuje przestarzałe wersje PHP. W chwili pisania tego tekstu strona statystyk WordPressa informuje, że 32,5% wszystkich instalacji WordPressa działa na wersjach PHP, które nie otrzymują już aktualizacji zabezpieczeń.
Zwróć uwagę na prawie 60% instalacji działających na PHP 5.6 i 7.0, które otrzymają poprawki bezpieczeństwa tylko do końca tego roku.
Hosting jest jednak ważny nie tylko ze względu na aktualizowanie oprogramowania serwera. Dobry host zaoferuje znacznie więcej usług, takich jak automatyczne codzienne kopie zapasowe, automatyczne aktualizacje, monitorowanie integralności plików i bezpieczeństwo poczty e-mail. Istnieje duża różnica między zarządzanymi hostami WordPress a hostami, które zapewniają folder online z dostępem do bazy danych.
Najlepszą radą jest znalezienie porządnie zarządzanego hosta WordPress. Kosztują trochę więcej, ale stanowią świetny szkielet dla Twojej witryny WordPress.
Część 3: Poufność
Jeśli upewniłeś się, że baza kodu jest tak bezpieczna, jak to tylko możliwe i jesteś na świetnym hoście WordPress, otoczonym skanerami złośliwego oprogramowania i kopiami zapasowymi, nadal będziesz mieć problemy z bezpieczeństwem, ponieważ ludzie są najgorsi … na bezpieczeństwo w Internecie.
Poufność to edukacja siebie, klienta i użytkowników serwisu.
Dane poufne
Możesz tego nie wiedzieć, ale Twoje wtyczki i motywy prawdopodobnie wyświetlają cenne poufne dane. Jeśli, na przykład, masz WP_DEBUG
ustawioną na true
, to pokazujesz każdemu hakerowi ścieżkę katalogu głównego Twojej witryny na serwerze. Dane debugowania nie powinny znajdować się w Twojej witrynie produkcyjnej.
Innym cennym źródłem danych są komentarze i strony autorskie. Są one wypełnione nazwami użytkowników, a nawet adresami e-mail. Haker może ich użyć w połączeniu ze słabym hasłem, aby dostać się do Twojej witryny. Uważaj na to, co pokazujesz światu zewnętrznemu.
Sprawdź również, czy umieściłeś wp-config.php
w swoim .gitignore
.
Nie koduj sam
Sposobem na zapobieganie wkradnięciu się wielu błędów do bazy kodu jest przećwiczenie programowania w parach. Jeśli jesteś sam, jest to o wiele trudniejsze, ale dostępnych jest wiele społeczności internetowych, które chcą przeprowadzać szybkie audyty kodu. Na przykład WordPress używa Slacka do komunikowania wszystkiego o rozwoju swojej platformy. Znajdziesz tam wielu chętnych do pomocy. Wolniejszymi, ale lepszymi alternatywami są fora WordPress, StackOverflow i GitHub, gdzie Twoje pytania (i ich odpowiedzi!) są zapisywane, aby inne osoby mogły z nich skorzystać.
Proszenie o wkład może być trudne, ale ludzie uwielbiają pokazywać swoją wiedzę, a WordPress ogólnie ma bardzo otwartą i przyjazną społeczność. Chodzi o to, że jeśli nigdy nie poprosisz o dane wejściowe dotyczące jakości swojego kodu, nie będziesz miał pojęcia, czy Twój kod jest bezpieczny.
Loginy i hasła
Twoi klienci będą musieli zalogować się do WordPressa, aby zarządzać swoją zawartością. Rdzeń WordPressa robi wszystko, co w jego mocy, aby zapobiec przedostawaniu się słabych haseł, ale to zwykle nie wystarcza.
Zalecam dodanie wtyczki do uwierzytelniania dwuskładnikowego do Twojej witryny, wraz z limitem prób logowania. Co więcej, całkowicie pozbądź się haseł i pracuj z magicznymi linkami.
Ufaj ale sprawdzaj
Jak dotąd w tym artykule w ogóle nie rozmawialiśmy o inżynierii społecznej. Jest to forma hakowania, która nabiera rozpędu, ale generalnie nie jest używana do włamywania się do witryn WordPress. Jest to jednak doskonały sposób na stworzenie kultury wokół Twojej witryny z myślą o bezpieczeństwie. To dlatego, że najlepszą obroną przed socjotechniką jest „Ufaj, ale weryfikuj”.
Ilekroć klient, użytkownik lub Twój szef prosi o coś związanego z bezpieczeństwem, najlepszym sposobem na poradzenie sobie z tym jest zaufanie, ale najpierw sprawdź, czy to, co mówią, jest prawdą.
Klient może twierdzić, że potrzebuje dostępu administratora do WordPressa, ale Twoim zadaniem jest zweryfikowanie, czy to prawda. Czy rzeczywiście potrzebują dostępu, czy też brakuje im tylko jednej zdolności w swojej roli? Czy istnieje sposób na rozwiązanie tego problemu bez dodawania ewentualnych nowych wektorów ataku?
„Zaufaj, ale weryfikuj” to prosta, ale skuteczna mantra, jeśli chodzi o pytania bezpieczeństwa, i może naprawdę pomóc ludziom przyspieszyć.
Wniosek
Czy WordPress nie jest bezpieczny? Nie, nie jest. Rdzeń WordPressa jest stale aktualizowany i naprawiany, a większość zgłaszanych hacków WordPress nie pochodzi z samego WordPressa. Czy kultura otaczająca WordPressa jest niepewna? Pewnie!
Mając jednak na uwadze bezpieczeństwo każdej linijki kodu, którą napiszesz, każdego dodanego użytkownika, każdej włączonej wtyczki i każdego płaconego rachunku hostingowego, możesz przynajmniej upewnić się, że prowadzisz bezpieczną witrynę internetową, która utrzyma Twoją reputację w stanie nienaruszonym bezpieczne dane.