Zaufane samouczki WordPress, kiedy ich najbardziej potrzebujesz.
Przewodnik dla początkujących po WordPressie
WPB Cup
25 milionów+
Witryny korzystające z naszych wtyczek
16+
Lata doświadczenia z WordPressem
3000+
Samouczki WordPress od ekspertów

Jak zapobiegać atakom SQL Injection w WordPress (7 wskazówek)

Zabezpieczenie Twojej witryny WordPress przed atakami typu SQL injection jest konieczne, aby chronić Twoje dane i utrzymać zaufanie odwiedzających.

Wstrzykiwanie SQL to powszechna technika stosowana przez hakerów do atakowania Twojej bazy danych. Gdy to zrobią, hakerzy mogą odczytywać Twoje poufne dane, modyfikować je i przejmować kontrolę nad całą Twoją bazą danych.

Aby chronić swoją witrynę przed tym zagrożeniem, kluczowe jest wdrożenie silnych środków bezpieczeństwa.

W WPBeginner bardzo poważnie traktujemy bezpieczeństwo i dołożyliśmy wszelkich starań, aby chronić naszą witrynę przed hakerami i złośliwym oprogramowaniem. Wiele praktyk bezpieczeństwa, które zalecamy w celu zapobiegania atakom SQL injection, to metody, które sami z powodzeniem stosowaliśmy.

W tym artykule podzielimy się kilkoma praktycznymi wskazówkami, jak krok po kroku zapobiegać atakom SQL injection w WordPressie.

Zapobieganie atakom SQL injection na WordPress

Dlaczego zapobiegać atakom SQL injection w WordPress?

SQL to skrót od Structured Query Language, czyli języka programowania, który komunikuje się z bazą danych Twojej witryny WordPress. Bez tej funkcji Twoja witryna nie może generować żadnych dynamicznych treści.

Jednak nieautoryzowane dane wejściowe użytkownika, przestarzałe oprogramowanie lub ujawnienie poufnych informacji mogą spowodować lukę w zabezpieczeniach i ułatwić hakerom przeprowadzanie ataków SQL injection.

Ten atak celuje w Twój serwer bazy danych i dodaje złośliwy kod lub instrukcje do Twojego SQL. Po wykonaniu tego hakerzy mogą wykorzystać poufne informacje przechowywane w Twojej bazie danych, takie jak dane użytkowników, do kradzieży tożsamości, przejęcia konta, oszustw finansowych i nie tylko.

Mogą również zmieniać wpisy w bazie danych lub uprawnienia konta i przeprowadzać ataki DDoS, utrudniając rzeczywistym użytkownikom odwiedzanie Twojej witryny.

Może to nadszarpnąć zaufanie klientów, negatywnie wpłynąć na doświadczenie użytkownika i zmniejszyć ruch na stronie, co będzie złe dla rozwoju Twojej małej firmy.

Mając to na uwadze, przyjrzyjmy się kilku praktycznym wskazówkom, które mogą zapobiec atakom SQL injection w WordPress. Oto szybki przegląd tego, o czym będziemy mówić w tym artykule:

  1. Regularnie aktualizuj witrynę i używaj zapory sieciowej
  2. Ukryj wersję WordPress
  3. Zmień prefiks bazy danych WordPress
  4. Zweryfikuj dane użytkownika
  5. Ogranicz dostęp i uprawnienia ról użytkowników
  6. Twórz niestandardowe komunikaty o błędach bazy danych
  7. Usuń niepotrzebne funkcje bazy danych

Uwaga: Zanim wprowadzisz jakiekolwiek zmiany w swojej bazie danych w celu zastosowania środków zapobiegawczych, zalecamy wykonanie jej kopii zapasowej. W ten sposób, jeśli coś pójdzie nie tak, możesz użyć kopii zapasowej do naprawy. Szczegółowe informacje znajdziesz w naszym poradniku jak ręcznie wykonać kopię zapasową bazy danych WordPress.

1. Regularnie aktualizuj witrynę i używaj zapory sieciowej

Skutecznym sposobem zapobiegania atakom SQL injection jest regularne aktualizowanie witryny WordPress do najnowszej wersji. Te aktualizacje często łatają luki w zabezpieczeniach, w tym problemy z oprogramowaniem bazy danych, utrudniając hakerom atakowanie Twojej witryny.

Jeśli używasz nieaktualnej wersji WordPress, zalecamy włączenie automatycznych aktualizacji do najnowszej wersji, odwiedzając stronę Panel » Aktualizacje.

Tutaj po prostu kliknij link „Włącz automatyczne aktualizacje dla wszystkich nowych wersji WordPress”. Teraz wszystkie główne aktualizacje będą instalowane na Twojej stronie po ich wydaniu.

Zainstaluj aktualizacje WordPress

Więcej informacji znajdziesz w naszym przewodniku dla początkujących na temat bezpiecznego aktualizowania WordPressa.

Po wykonaniu tej czynności możesz również dodać zaporę sieciową dla dodatkowego bezpieczeństwa. Ta funkcja działa jak tarcza między Twoją witryną a przychodzącym ruchem i blokuje powszechne zagrożenia bezpieczeństwa, w tym ataki SQL, zanim dotrą one do Twojej witryny.

Jeśli prowadzisz małą firmę internetową, polecamy Sucuri, które jest jednym z najlepszych programów zapory sieciowej WordPress dostępnych na rynku. Oferuje zaporę sieciową na poziomie aplikacji, zapobieganie atakom brute force, a także usługi usuwania złośliwego oprogramowania i czarnych list, co czyni go świetnym wyborem.

Jak zapora sieciowa blokuje ataki

Mamy bezpośrednie doświadczenie z tym narzędziem. Pomogło nam nawet zablokować 450 000 ataków na WordPress na naszej stronie internetowej w przeszłości.

Niemniej jednak, Sucuri może nie być wystarczająco potężne dla większych stron o dużym natężeniu ruchu. W takim przypadku możesz rozważyć Cloudflare, który może zapewnić funkcje bezpieczeństwa, a także imponującą sieć dostarczania treści (CDN).

Jeśli nie masz pewności, która opcja jest najlepsza dla Twojej witryny, zapoznaj się z naszym artykułem na temat tego, dlaczego przeszliśmy z Sucuri na Cloudflare lub naszego porównania Sucuri i Cloudflare.

2. Ukryj wersję WordPressa

Domyślnie WordPress wyświetla aktualny numer wersji używanego oprogramowania na Twojej stronie internetowej. Na przykład, jeśli używasz WordPress 6.4, ta wersja zostanie wyświetlona na Twojej stronie w celu śledzenia.

Jednak publiczna widoczność numeru wersji może stanowić zagrożenie bezpieczeństwa i ułatwić hakerom przeprowadzanie ataków SQL injection na WordPress.

Usuń numer wersji WordPress

Dzieje się tak, ponieważ każda wersja WordPressa ma swoje własne, unikalne luki, które atakujący mogą wykorzystać po odkryciu Twojej wersji. Pozwoli im to na dodanie złośliwych fragmentów kodu do Twojej witryny poprzez podatne na ataki pola wprowadzania danych.

Możesz łatwo usunąć numer wersji ze swojej witryny, dodając następujący fragment kodu do pliku functions.php.

add_filter('the_generator', '__return_empty_string');

Gdy to zrobisz, hakerzy nie będą w stanie znaleźć numeru wersji Twojego WordPressa za pomocą automatycznych skanerów ani w żaden inny sposób.

Uwaga: Pamiętaj, że drobny błąd podczas dodawania kodu może sprawić, że Twoja witryna stanie się niedostępna. Dlatego polecamy WPCode. Jest to najlepsza wtyczka do fragmentów kodu, która sprawia, że dodawanie niestandardowego kodu do Twojej witryny jest niezwykle bezpieczne i łatwe.

Więcej szczegółów znajdziesz w naszym poradniku właściwy sposób na usunięcie numeru wersji WordPress.

3. Zmień prefiks bazy danych WordPress

Domyślnie WordPress dodaje prefiks wp_ do wszystkich plików bazy danych, co ułatwia hakerom planowanie ataków poprzez celowanie w prefiks.

Najprostszym sposobem na zapobieganie atakom SQL injection jest zmiana domyślnego prefiksu bazy danych na coś unikalnego, czego hakerzy nie będą w stanie odgadnąć.

Możesz to łatwo zrobić, łącząc się ze swoją stroną za pomocą FTP. Następnie otwórz plik wp-config.php i znajdź linię zmiany $table_prefix. Następnie możesz zmienić ją z domyślnego wp_ na coś innego, na przykład: wp_a123456_.

$table_prefix  = 'wp_a123456_';

Następnie musisz odwiedzić cPanel swojego konta hostingowego. W tym samouczku użyjemy Bluehost. Jednak Twój cPanel może wyglądać nieco inaczej w zależności od firmy hostingowej.

Tutaj przełącz się na zakładkę „Zaawansowane” i kliknij przycisk „Zarządzaj” obok sekcji „PHPMyAdmin”.

Kliknij przycisk Zarządzaj obok sekcji PHPMyAdmin

Otworzy to nową stronę, na której musisz wybrać nazwę swojej bazy danych z lewej kolumny i przełączyć się na zakładkę „SQL” z góry.

Następnie możesz dodać następujące zapytanie SQL do pola tekstowego.

Zapytanie SQL w phpMyAdmin

Pamiętaj tylko, aby zmienić prefiks bazy danych na ten, który wybrałeś podczas edycji pliku wp-config.php.

RENAME table `wp_comments` TO `wp_a123456_comments`;
RENAME table `wp_links` TO `wp_a123456_links`;
RENAME table `wp_options` TO `wp_a123456_options`;
RENAME table `wp_postmeta` TO `wp_a123456_postmeta`;
RENAME table `wp_RENAME table `wp_commentmeta` TO `wp_a123456_commentmeta`;
posts` TO `wp_a123456_posts`;
RENAME table `wp_terms` TO `wp_a123456_terms`;
RENAME table `wp_termmeta` TO `wp_a123456_termmeta`;
RENAME table `wp_term_relationships` TO `wp_a123456_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_a123456_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_a123456_usermeta`;
RENAME table `wp_users` TO `wp_a123456_users`;

Więcej instrukcji znajdziesz w naszym poradniku na temat jak zmienić prefiks bazy danych WordPress, aby poprawić bezpieczeństwo.

4. Waliduj dane użytkownika

Hakerzy zazwyczaj przeprowadzają ataki SQL na Twoją stronę internetową, wykorzystując pola do wprowadzania danych użytkownika, takie jak sekcje komentarzy lub pola formularza kontaktowego.

Dlatego ważne jest, aby walidować wszystkie dane przesyłane na Twojego bloga WordPress. Oznacza to, że dane użytkownika nie będą przesyłane na Twoją witrynę, jeśli nie będą zgodne z określonym formatem.

Na przykład użytkownik nie będzie mógł przesłać formularza, jeśli pole adresu e-mail nie będzie zawierało symbolu „@”. Dodając tę walidację do większości pól formularza, możesz zapobiec atakom SQL injection.

Zweryfikuj pole e-mail

Aby to zrobić, będziesz potrzebować Formidable Forms, która jest zaawansowaną wtyczką do tworzenia formularzy. Posiada opcję „Format maski wprowadzania”, gdzie możesz dodać format, którego użytkownicy muszą przestrzegać, aby przesłać dane pola formularza.

Możesz dodać określony format dla numerów telefonów lub pojedynczych pól tekstowych.

Dodaj format numeru telefonu

Jeśli nie chcesz walidować pól formularza, zalecamy WPForms, ponieważ jest to najlepsza wtyczka formularza kontaktowego, która oferuje pełną ochronę przed spamem i obsługę Google reCAPTCHA.

Pozwala również na dodawanie menu rozwijanych i pól wyboru do formularzy, co utrudnia hakerom dodawanie złośliwych danych.

wpforms

Więcej szczegółów znajdziesz w naszym poradniku na temat tworzenia bezpiecznego formularza kontaktowego w WordPress.

5. Ogranicz dostęp i uprawnienia ról użytkowników

Kolejną wskazówką zapobiegającą atakom SQL injection na WordPress jest ograniczenie dostępu użytkowników do Twojej witryny.

Na przykład, jeśli masz bloga wieloautorskiego, będziesz mieć różnych autorów, a także subskrybentów i administratorów. W takim przypadku możesz poprawić bezpieczeństwo witryny, ograniczając pełny dostęp administracyjny tylko do administratora.

Możesz ograniczyć wszystkie inne role użytkowników do określonych funkcji, które będą potrzebne do wykonywania ich pracy. Zmniejszy to dostęp użytkowników do Twojej bazy danych i zapobiegnie atakom typu SQL injection.

Możesz to zrobić za pomocą darmowej wtyczki Remove Dashboard Access. Po aktywacji po prostu odwiedź stronę Ustawienia » Dostęp do panelu administracyjnego, gdzie możesz zdecydować, które role użytkowników mają dostęp do panelu administracyjnego.

Ogranicz ustawienia dostępu do pulpitu

Jeśli chcesz ograniczyć użytkowników w zależności od ich uprawnień, zapoznaj się z naszym poradnikiem na temat dodawania lub usuwania uprawnień z ról użytkowników w WordPress.

Podobnie, możesz również ograniczyć autorów do ich własnych postów w swoim obszarze administracyjnym dla większego bezpieczeństwa.

6. Twórz niestandardowe komunikaty o błędach bazy danych

Czasami Twoi użytkownicy mogą napotkać na błąd bazy danych na Twojej stronie internetowej, który może ujawnić ważne informacje o Twojej bazie danych, narażając ją na ataki SQL injection.

W takim przypadku zalecamy utworzenie niestandardowego komunikatu o błędzie bazy danych, który zostanie wyświetlony użytkownikom, gdy napotkają ten częsty błąd. Aby to zrobić, musisz skopiować i wkleić poniższą zawartość do aplikacji Notatnik i zapisać plik jako „db-error.php”.

<?php // custom WordPress database error page
   
  header('HTTP/1.1 503 Service Temporarily Unavailable');
  header('Status: 503 Service Temporarily Unavailable');
  header('Retry-After: 600'); // 1 hour = 3600 seconds
   
  // If you wish to email yourself upon an error
  // mail("your@email.com", "Database Error", "There is a problem with the database!", "From: Db Error Watching");
   
?>
   
<!DOCTYPE HTML>
<html>
<head>
<title>Database Error</title>
<style>
body { padding: 20px; background: red; color: white; font-size: 60px; }
</style>
</head>
<body>
  You got problems.
</body>

Następnie, połącz swoją witrynę z programem FTP i prześlij właśnie utworzony plik do katalogu /wp-content/ swojej witryny.

Teraz, gdy użytkownicy napotkają błąd bazy danych na Twojej stronie, zobaczą komunikat informujący o problemie, nie ujawniając żadnych wrażliwych informacji.

Niestandardowa strona podglądu błędów bazy danych

Dodatkowo tytuł „Błąd bazy danych” będzie wyświetlany w karcie przeglądarki internetowej.

Więcej szczegółów znajdziesz w naszym poradniku na temat jak dodać niestandardową stronę błędu bazy danych w WordPress.

7. Usuń niepotrzebne funkcje bazy danych

Aby zapobiec atakom typu SQL injection, powinieneś również spróbować usunąć wszystkie funkcje bazy danych i pliki, których nie potrzebujesz na swojej stronie internetowej.

Na przykład możesz usunąć niepotrzebne tabele, wersje robocze lub niezatwierdzone komentarze, które mogą uczynić Twoją bazę danych podatną na ataki hakerów.

Aby usunąć niepotrzebne funkcje bazy danych, polecamy WP-Optimize. Jest to niesamowita wtyczka, która usuwa niepotrzebne tabele, wersje postów, wersje robocze, odrzucone komentarze, usunięte posty, pingbacki, metadane postów i wiele więcej.

Usuń niepotrzebne funkcje bazy danych

Usuwa wszystkie niepotrzebne pliki i optymalizuje bazę danych, aby stała się bezpieczniejsza i szybsza. Szczegółowe informacje znajdziesz w naszym przewodniku dla początkujących na temat optymalizacji bazy danych WordPress.

Mamy nadzieję, że ten artykuł pomógł Ci dowiedzieć się, jak zapobiegać atakom SQL injection w WordPress. Możesz również zapoznać się z naszym przewodnikiem dla początkujących na temat sprawdzania aktualizacji zabezpieczeń WordPress lub naszym ostatecznym przewodnikiem po zabezpieczeniach WordPress.

Jeśli podobał Ci się ten artykuł, zasubskrybuj nasz kanał YouTube po samouczki wideo WordPress. Możesz nas również znaleźć na Twitterze i Facebooku.

Ujawnienie: Nasze treści są wspierane przez czytelników. Oznacza to, że jeśli klikniesz w niektóre z naszych linków, możemy otrzymać prowizję. Zobacz jak finansowany jest WPBeginner, dlaczego to ważne i jak możesz nas wesprzeć. Oto nasz proces redakcyjny.

Ostateczny zestaw narzędzi WordPress

Uzyskaj BEZPŁATNY dostęp do naszego zestawu narzędzi – kolekcji produktów i zasobów związanych z WordPress, które powinien mieć każdy profesjonalista!

Interakcje czytelników

3 CommentsLeave a Reply

  1. To jest dla mnie nowe, że mogę łatwo ukryć wersję WordPress, co domyślnie uniemożliwi hakerom odgadnięcie luk w zabezpieczeniach na podstawie wersji WordPress i ich luk.
    Świetne wskazówki, jak zapobiegać atakom SQL injection na stronę internetową.
    Zastosuję te triki, aby moja strona była odporna na wszelkie luki w zabezpieczeniach.

  2. Dla mnie ukrywanie wersji WordPressa jest nowością. Każda wersja WordPressa ma swoje własne luki w zabezpieczeniach, więc ukrycie numeru wersji sprawi, że hakerzy nie będą wiedzieć, jakiej wersji WordPressa używasz, nie mówiąc już o wykorzystaniu powiązanych luk. Dziękuję za informację. Myślę również, że jeśli tworzysz wtyczkę, która zbiera dane od użytkowników, rozsądnie jest oczyścić dane wejściowe użytkowników (po normalnej walidacji), które zostaną wstawione do bazy danych.

  3. Bezpieczeństwo WordPress jest dla mnie najważniejsze. Związany z tym jest SQL, na który nigdy nie zwracałem zbytniej uwagi. Dziękuję za tę listę świetnych wskazówek. Od razu sprawdzę swojego bloga, aby zobaczyć, co mogę poprawić zgodnie z Twoją listą. Przynajmniej spróbuję ukryć wersję i tak dalej.

Zostaw odpowiedź

Dziękujemy za pozostawienie komentarza. Pamiętaj, że wszystkie komentarze są moderowane zgodnie z naszą polityką komentowania, a Twój adres e-mail NIE zostanie opublikowany. Prosimy NIE używać słów kluczowych w polu nazwy. Prowadźmy osobistą i znaczącą rozmowę.