Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Puchar WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

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

Uwaga redakcyjna: Otrzymujemy prowizję z linków partnerskich na WPBeginner. Prowizje nie mają wpływu na opinie i oceny naszych redaktorów. Dowiedz się więcej o Proces redakcyjny.

Czy chcesz zapobiec atakom SQL injection w WordPress?

SQL injection to luka w zabezpieczeniach, którą hakerzy mogą wykorzystać do zaatakowania bazy danych twojej witryny internetowej. Gdy to zrobią, atakujący może odczytać twoje wrażliwe dane, zmodyfikować je i przejąć kontrolę nad całą bazą danych.

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

Prevent WordPress SQL Injection Attacks

Dlaczego warto zapobiegać atakom SQL Injection w WordPress?

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

Jednak nieautoryzowane dane wprowadzane przez użytkowników, nieaktualne oprogramowanie lub ujawnianie poufnych informacji może powodować luki w zabezpieczeniach i ułatwiać hakerom przeprowadzanie ataków SQL injection.

Atak ten jest wymierzony w twój serwer bazy danych i dodaje złośliwy kod lub instrukcje do twojego SQL. W ten sposób hakerzy mogą wykorzystać poufne informacje przechowywane w twojej bazie danych, takie jak dane użytkownika, do kradzieży tożsamości, przejęcia konta, oszustw finansowych i innych.

Mogą oni również zmieniać wpisy w bazie danych lub uprawnienia kont i przeprowadzać ataki DDOS, utrudniając rzeczywistym użytkownikom przejście na twoją witrynę internetową.

Może to zaszkodzić zaufaniu klientów, negatywnie wpłynąć na doświadczenia użytkowników i zmniejszyć ruch w witrynie internetowej, co będzie niekorzystne dla rozwoju twojej małej firmy.

Mając to na uwadze, przyjrzyjmy się kilku możliwym do zastosowania wskazówkom, które mogą zapobiec atakom SQL injection w WordPress.

Uwaga: Przed wprowadzeniem jakichkolwiek zmian w twojej bazie danych w celach zapobiegawczych zalecamy utworzenie jej kopii zapasowej. W ten sposób, jeśli coś pójdzie nie tak, możesz użyć kopii zapasowej, aby to poprawić. Aby uzyskać szczegółowe informacje, zapoznaj się z naszym poradnikiem na temat ręcznego tworzenia kopii zapasowej bazy danych WordPress.

1. Regularne aktualizacje witryny i korzystanie z zapory sieciowej

Skutecznym sposobem zapobiegania atakom SQL injection jest regularne aktualizowanie twojej witryny WordPress do najnowszej wersji. Aktualizacje te często łatają luki w zabezpieczeniach, w tym problemy z oprogramowaniem bazy danych, utrudniając hakerom atak na twoją witrynę.

Jeśli korzystasz z nieaktualnej wersji WordPressa, zalecamy włączenie automatycznych aktualizacji do najnowszej wersji, przechodząc na stronę Kokpit ” Aktualizacje.

Tutaj wystarczy kliknąć odnośnik „Włącz automatyczne aktualizacje dla wszystkich nowych wersji WordPress”. Teraz wszystkie główne aktualizacje będą instalowane na twojej witrynie po ich wydaniu.

Install WordPress updates

Aby uzyskać więcej informacji, warto zapoznać się z naszym przewodnikiem dla początkujących na temat bezpiecznej aktualizacji WordPressa.

Gdy już to zrobisz, możesz również dodać zaporę sieciową dla dodatkowego zabezpieczenia. Funkcja ta działa jak tarcza między twoją witryną a ruchem przychodzącym i blokuje typowe zagrożenia bezpieczeństwa, w tym ataki SQL, zanim dotrą one do twojej witryny internetowej.

Do tej funkcji polecamy Sucuri, który jest najlepszą zaporą WordPress na rynku. Oferuje zaporę na poziomie aplikacji, zapobieganie atakom typu brute force, a także usługi usuwania złośliwego oprogramowania i czarnych list, co czyni go doskonałym wyborem.

How website firewall blocks attacks

Ponadto narzędzie to pomogło nam zablokować około 450 000 ataków WordPressa na naszą witrynę internetową w przeszłości.

Aby uzyskać więcej informacji, zapoznaj się z naszym kompletnym przewodnikiem po zabezpieczeniach WordPress.

2. Ukryj swoją wersję WordPressa

Domyślnie WordPress wyświetla obecny, aktualny numer wersji oprogramowania, którego używasz na twojej witrynie internetowej. Na przykład, jeśli używasz WordPress 6.4, to ta wersja będzie wyświetlana na twojej witrynie w celu śledzenia.

Jednak publiczna widoczność twojego numeru wersji może powodować zagrożenia bezpieczeństwa i ułatwiać hakerom przeprowadzanie ataków SQL injection WordPressa.

Remove WordPress version number

Dzieje się tak, ponieważ każda wersja WordPressa ma swoje unikatowe 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 za pośrednictwem podatnych na ataki pól wejściowych.

Możesz łatwo usuwać 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źć twojego numeru wersji WordPressa za pomocą automatycznych skanerów ani w żaden inny sposób.

Uwaga: Należy pamiętać, że drobny błąd podczas dodawania kodu może sprawić, że twoja witryna internetowa będzie niedostępna. Dlatego polecamy WPCode. Jest to najlepsza wtyczka do fragmentów kodu, która sprawia, że dodawanie własnego kodu do twojej witryny jest bardzo bezpieczne i łatwe.

Więcej szczegółów można znaleźć w naszym poradniku na temat właściwego sposobu usuwania numeru wersji WordPressa.

3. Zmiana prefiksu bazy danych WordPress

Domyślnie WordPress dodaje przedrostek wp_ do wszystkich twoich plików bazy danych, co ułatwia hakerom zaplanowanie ataku poprzez celowanie w ten przedrostek.

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

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

$table_prefix  = 'wp_a123456_';

Następnie musisz przejść na cPanel twojego konta hostingowego. W tym poradniku będziemy korzystać z Bluehost, jednak twój cPanel może wyglądać nieco inaczej w zależności od firmy hostingowej.

Tutaj przejdź do karty „Zaawansowane” i kliknij przycisk „Zarządzaj” obok sekcji „PHPMyAdmin”.

Click the Manage button next to the PHPMyAdmin section

Spowoduje to otwarcie nowej strony, na której musisz wybrać nazwę bazy danych z lewej kolumny i przełączyć się na kartę „SQL” u góry.

Następnie można dodać następujące zapytanie SQL w polu tekstowym.

SQL query in 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 można znaleźć w naszym poradniku na temat zmiany prefiksu bazy danych WordPress w celu poprawy zabezpieczeń.

4. Zatwierdzanie danych użytkownika

Hakerzy zazwyczaj dokonują ataków SQL na twoją witrynę internetową, wykorzystując pola służące do wpisz danych użytkownika, takie jak sekcje komentarzy lub pola formularzy kontaktowych.

Dlatego ważne jest, aby importować wszystkie dane, które są przesyłane na twoim blogu WordPress. Oznacza to, że dane użytkownika nie zostaną przesł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 zawiera symbolu „@”. Dodając tę walidację do większości twoich pól formularzy, możesz zapobiec atakom typu SQL injection.

Validate your email field

Aby to zrobić, będziesz potrzebował Formidable Forms, która jest zaawansowaną wtyczką do tworzenia formularzy. Jest ona wyposażona w opcję „Input Mask Format”, w której można 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.

Add hone number format

Jeśli nie chcesz walidować pól formularza, polecamy WPForms, ponieważ jest to najlepsza wtyczka do formularzy kontaktowych, która jest w pełni zabezpieczona przed spamem i obsługuje Google reCAPTCHA.

Za jego pomocą można również dodawać rozwijane menu i pola wyboru w twoich formularzach. Utrudni to hakerom dodawanie złośliwych danych.

wpforms

Więcej szczegółów można znaleźć w naszym poradniku na temat tworzenia zabezpieczonego formularza kontaktowego w WordPress.

5. Ograniczenie dostępu i uprawnień ról użytkowników

Inną wskazówką zapobiegającą atakom WordPress SQL injection jest ograniczenie dostępu użytkowników do twojej witryny internetowej.

Na przykład, jeśli prowadzisz blog z wieloma autorami, będziesz mieć różnych autorów wraz z subskrybentami i administratorami. W takim przypadku można poprawić zabezpieczenia witryny, ograniczając pełny dostęp administratora tylko do niego.

Możesz ograniczyć wszystkie inne role użytkowników do określonych funkcji, których będą potrzebować do wykonywania swojej pracy. Ograniczy to dostęp użytkowników do twojej bazy danych i zapobiegnie atakom typu SQL injection.

Można to zrobić za pomocą darmowej wtyczki Remove Dashboard Access. Po włączaniu wystarczy przejść na stronę Ustawienia ” Dostęp do kokpitu, gdzie można zdecydować, które role użytkowników otrzymają dostęp do kokpitu.

Limit the dashboard access settings

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

Podobnie, możesz również ograniczyć autorów do ich własnych wpisów w twoim obszarze administracyjnym dla większego zabezpieczenia.

6. Tworzenie własnych komunikatów o błędach w bazie danych

Czasami twoi importerzy mogą natknąć się na błąd bazy danych na twojej witrynie internetowej, który może wyświetlać ważne informacje o bazie danych, czyniąc ją podatną na ataki SQL injection.

W takim przypadku zalecamy utworzenie własnego komunikatu o błędzie bazy danych, który będzie wyświetlany klientom, gdy napotkają ten typowy błąd. Aby to zrobić, należy skopiować i wkleić poniższą treść do notatnika 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/.

Teraz, gdy użytkownicy napotkają błąd bazy danych na twojej witrynie internetowej, zobaczą tylko komunikat o błędzie informujący ich o problemie bez ujawniania żadnych poufnych informacji.

Custom database error preview page

Ponadto na karcie przeglądarki internetowej zostanie wyświetlony tytuł „Błąd bazy danych”.

Aby uzyskać więcej informacji, zapoznaj się z naszym poradnikiem na temat dodawania własnej strony błędu bazy danych w WordPress.

7. Usuwanie niepotrzebnych funkcji bazy danych

Aby zapobiec atakom SQL injection, powinieneś również starać się usuwać wszystkie funkcje bazy danych i pliki, które nie są potrzebne na twojej witrynie internetowej.

Możesz na przykład usunąć niepotrzebne tabele, kosze lub niezatwierdzone komentarze, które mogą uczynić twoją bazę danych podatną na ataki hakerów.

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

Remove unecessary database functionality

Usuwa wszystkie niepotrzebne pliki i optymalizuje twoją bazę danych, aby była bardziej zabezpieczona i szybsza. Aby uzyskać szczegółowe informacje, zapoznaj się z naszym przewodnikiem dla początkujących, jak zoptymalizować twoją bazę danych WordPress.

Bonus: Skorzystaj z usług WPBeginner Pro, aby stworzyć witrynę z zabezpieczeniami

Po podjęciu wszystkich środków zapobiegawczych przeciwko atakom SQL injection, można również zdecydować się na WPBeginner Pro Services.

Pomożemy Ci zidentyfikować i poprawić wszelkie inne luki w zabezpieczeniach, o których nie wiesz. Ponadto, jeśli miałeś już do czynienia z atakiem SQL injection, nasi eksperci mogą pomóc ci powstrzymać szkody i odzyskać twoje systemy.

WPBeginner Professional Services Hacked Site Repair

Możesz również zatrudnić nas do poprawy optymalizacji szybkości Twojej witryny, projektu, SEO, a nawet całkowitej przebudowy istniejącej witryny WordPress, niezależnie od tego, czy została zhakowana, czy nie.

Aby uzyskać więcej informacji, sprawdź wszystkie nasze profesjonalne usługi WPBeginner.

Mamy nadzieję, że ten artykuł pomógł ci dowiedzieć się, jak zapobiegać atakom WordPress SQL injection. Możesz również zapoznać się z naszym przewodnikiem dla początkujących na temat zarządzania bazą danych WordPress i naszymi najlepszymi wtyczkami do bazy danych WordPress.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

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

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Najlepszy zestaw narzędzi WordPress

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

Reader Interactions

2 komentarzeZostaw odpowiedź

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Jiří Vaněk says

    WordPress security is alpha and omega for me. Related to that is SQL, which I’ve never paid much attention to. Thanks for this list of great tips. I’m going to check my blog right away to see what I can improve according to your list. At least I’ll try to hide the version and so on.

Zostaw odpowiedź

Dziękujemy za pozostawienie komentarza. Pamiętaj, że wszystkie komentarze są moderowane zgodnie z naszymi polityka komentarzy, a Twój adres e-mail NIE zostanie opublikowany. NIE używaj słów kluczowych w polu nazwy. Przeprowadźmy osobistą i konstruktywną rozmowę.