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 do 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:

Uwaga: Zanim wprowadzisz jakiekolwiek zmiany w swojej bazie danych w celu zapobiegania, zalecamy utworzenie jej kopii zapasowej. W ten sposób, jeśli coś pójdzie nie tak, możesz użyć kopii zapasowej do naprawienia problemu. Szczegółowe informacje znajdziesz w naszym poradniku na temat ręcznego tworzenia kopii zapasowej 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 korzystasz z nieaktualnej wersji WordPressa, 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 dla WordPressa na rynku. Oferuje zaporę sieciową na poziomie aplikacji, ochronę przed atakami siłowymi, a także usługi usuwania złośliwego oprogramowania i czarnych list, co czyni go doskonałym 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 WordPressa na naszej stronie w przeszłości.

Należy jednak pamiętać, że Sucuri może nie być wystarczająco potężne dla większych witryn 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 dlaczego przeszliśmy z Sucuri na Cloudflare lub naszym porównaniem Sucuri i Cloudflare.

2. Ukryj wersję WordPressa

Domyślnie WordPress wyświetla aktualny numer wersji używanego oprogramowania na Twojej stronie. Na przykład, jeśli używasz WordPressa 6.4, ten numer wersji będzie wyświetlany 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 swojego 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 spowodować, ż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 bardzo bezpieczne i łatwe.

Więcej szczegółów znajdziesz w naszym poradniku na temat właściwego sposobu usuwania numeru wersji WordPressa.

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ą witryną za pomocą FTP. Następnie otwórz plik wp-config.php i znajdź linię z $table_prefix, aby ją zmienić. Następnie możesz zmienić ją z prostego 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 poradniku 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 zmiany prefiksu bazy danych WordPress w celu zwiększenia bezpieczeństwa.

4. Waliduj dane użytkownika

Hakerzy zazwyczaj wstrzykują ataki SQL na Twoją stronę internetową, używając pól do wprowadzania danych użytkownika, takich 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ą stronę, 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óre jest zaawansowanym pluginem do tworzenia formularzy. Posiada ono opcję „Format maski wprowadzania”, gdzie możesz dodać format, którego użytkownicy muszą przestrzegać, aby przesłać dane z 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, polecamy WPForms, ponieważ jest to najlepszy plugin formularza kontaktowego, który 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 z wieloma autorami, będziesz mieć różnych autorów oprócz subskrybentów i administratorów. W takim przypadku możesz zwiększyć 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ą darmowego pluginu Remove Dashboard Access. Po aktywacji po prostu odwiedź stronę Ustawienia » Dostęp do pulpitu, gdzie możesz zdecydować, które role użytkowników mają dostęp do pulpitu.

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 obszarze administracyjnym, aby zwiększyć bezpieczeństwo.

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

Czasami Twoi użytkownicy mogą napotkać błąd bazy danych na Twojej stronie internetowej, który może wyświetlać 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 będzie wyświetlany 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 utworzony plik do katalogu /wp-content/ Twojej 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 dodawania niestandardowej strony 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, zalecamy WP-Optimize. Jest to niesamowity plugin, który usuwa niepotrzebne tabele, rewizje postów, wersje robocze, skasowane komentarze, usunięte posty, pingbacki, metadane postów i wiele więcej.

Usuń niepotrzebne funkcje bazy danych

Usuwa wszystkie pliki, których nie potrzebujesz, i optymalizuje bazę danych, aby była 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, jak sprawdzać aktualizacje bezpieczeństwa WordPress, lub z naszym ostatecznym przewodnikiem po bezpieczeństwie 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 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.

Leave A Reply

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. Proszę NIE używaj słów kluczowych w polu nazwy. Prowadźmy osobistą i znaczącą rozmowę.