W świecie WordPressa nietrudno trafić na użyteczne, ale niestety zaniedbane dodatki. Jednym z takich przypadków jest Contact Form 7 Datepicker – niegdyś praktyczne rozszerzenie pozwalające dodawać kalendarzowy wybór daty do formularzy tworzonych za pomocą popularnej wtyczki Contact Form 7. Jednak dziś, zamiast pomagać, ta wtyczka może otworzyć Twoją stronę na poważne zagrożenia. Poniżej znajdziesz szczegółowy, opisowy poradnik, który pomoże Ci zrozumieć, dlaczego ta wtyczka jest niebezpieczna i co powinieneś zrobić, jeśli nadal z niej korzystasz.
Czym jest Contact Form 7 Datepicker?
To proste rozszerzenie dodające do Contact Form 7 możliwość wstawienia pola typu datepicker – czyli graficznego kalendarza, z którego użytkownicy mogą wybrać datę zamiast wpisywać ją ręcznie. Tego typu funkcjonalność jest niezwykle przydatna w formularzach rezerwacyjnych, kontaktowych, zapisach na wydarzenia itp.
Na papierze wtyczka wyglądała na lekki i funkcjonalny dodatek. Problem jednak w tym, że od lat nie była rozwijana, a zmiany w API WordPressa oraz CF7 spowodowały, że stała się przestarzała – i co gorsza – dziurawa.
Porzucony projekt = otwarta furtka dla hakerów
Ostatnia aktualizacja tej wtyczki miała miejsce w 2020 roku, a więc już 6 lat temu. W świecie WordPressa to cała epoka. W międzyczasie zmieniły się kluczowe standardy bezpieczeństwa, polityki weryfikacji, a sam Contact Form 7 przeszedł kilka istotnych zmian strukturalnych. Mimo to, wiele osób nadal korzysta z Datepickera – bo działał… do czasu.
To właśnie brak aktualizacji i przeglądu kodu doprowadził do ujawnienia poważnej luki bezpieczeństwa typu Stored XSS – czyli wstrzyknięcia złośliwego kodu JavaScript, który może zostać zapisany w ustawieniach wtyczki i wykonany później, np. gdy administrator edytuje formularz.
Jak działa ta luka i dlaczego jest groźna?
Luka typu Stored XSS (Cross-Site Scripting) w tej wtyczce polegała na tym, że użytkownik z dowolnym poziomem dostępu – nawet zwykły subskrybent – mógł przesłać do ustawień wtyczki złośliwy kod JavaScript.
Ten kod zapisywany był w bazie danych, a następnie uruchamiał się w przeglądarce administratora, gdy ten przeglądał panel ustawień formularzy. Efekty? Potencjalnie katastrofalne:
- Przejęcie sesji administratora (tzw. session hijacking),
- Dodanie ukrytego konta z uprawnieniami administratora,
- Zmiana ustawień WordPressa,
- Osadzenie ukrytego malware w kodzie strony,
- Przekierowania na strony phishingowe,
- Wykradanie danych użytkowników – w tym adresów e-mail, loginów, danych z formularzy.
Co najgorsze, wszystko to mogło odbywać się bez wiedzy właściciela strony, który jedynie „niewinnie” przeglądał swój panel administracyjny.
Konsekwencje: od SEO po naruszenie RODO
Choć może się wydawać, że luka w jednej niepozornej wtyczce to drobnostka, to jej wykorzystanie może prowadzić do poważnych strat, zarówno technicznych, jak i wizerunkowych:
- Spadek pozycji SEO – strony z podejrzanym JavaScriptem są szybko wykrywane przez Google i mogą trafić na czarne listy, co skutkuje zablokowaniem ruchu organicznego,
- Blokady przez antywirusy i przeglądarki – niektóre systemy (np. AVG, Avast czy Microsoft Defender SmartScreen) blokują dostęp do stron z podejrzanym kodem,
- Zgłoszenia użytkowników – jeśli Twoja strona zacznie przekierowywać lub „wyskakiwać” użytkownikom z dziwnymi oknami, stracisz zaufanie odbiorców,
- Naruszenie przepisów RODO/GDPR – jeśli dane użytkowników zostały przejęte przez atakującego, grozi to koniecznością zgłoszenia naruszenia do odpowiednich organów i potencjalnymi karami finansowymi,
- Przejęcie strony – najgorszy scenariusz to całkowita utrata kontroli nad stroną. Atakujący może zablokować administratora, zmienić dane logowania i wykorzystać Twoją stronę do dalszych ataków.
Co powinieneś zrobić, jeśli używasz tej wtyczki?
Jeśli masz zainstalowaną wtyczkę Contact Form 7 Datepicker, nie zwlekaj. Oto plan działania krok po kroku:
Krok 1: Natychmiast usuń wtyczkę
Nie dezaktywuj – usuń. Sama obecność podatnego kodu w katalogu wp-content/plugins
może stanowić zagrożenie.
Krok 2: Sprawdź bazę danych i formularze
Zbadaj, czy w ustawieniach formularzy lub tabelach (np. wp_options
) nie znajdują się podejrzane skrypty JavaScript – często w postaci script>alert(...)
lub onload=...
.
Krok 3: Przeskanuj całą stronę
Użyj renomowanych narzędzi do skanowania bezpieczeństwa WordPressa – np. Wordfence, Sucuri lub iThemes Security. Pozwoli to wykryć potencjalne infekcje lub zmodyfikowane pliki.
Krok 4: Zmień hasła i przeloguj się
Zmieniaj hasła administratorów, dostępu do FTP, bazy danych i usług hostingowych. Przeglądarka może przechowywać aktywne sesje – warto wymusić ponowne logowanie i wylogować wszystkie konta.
Krok 5: Zastąp wtyczkę czymś bezpiecznym
Na rynku dostępne są liczne, aktywnie rozwijane i bezpieczne alternatywy. Możesz użyć:
- Innej wtyczki do daty – np. Date Time Picker Field,
- Samodzielnie osadzonego kodu JavaScript – np. Flatpickr lub jQuery UI Datepicker, jeśli masz wiedzę techniczną lub wsparcie developera,
- Nowego systemu formularzy – Ninja Forms, Gravity Forms czy WPForms oferują wbudowane, nowoczesne rozwiązania typu „date picker”.
Jak zapobiegać takim sytuacjom w przyszłości?
- Unikaj porzuconych wtyczek – jeśli ostatnia aktualizacja miała miejsce ponad rok temu, traktuj to jako czerwoną flagę.
- Czytaj changelogi i alerty bezpieczeństwa – WordPress.org oraz społeczności jak WPScan, Patchstack, Wordfence publikują regularne ostrzeżenia.
- Automatyzuj kopie zapasowe – codzienne backupy (np. przez UpdraftPlus) to must-have.
- Włącz 2FA – dwuskładnikowe uwierzytelnianie znacznie utrudnia przejęcie konta.
- Regularnie audytuj stronę – przynajmniej raz w miesiącu, sprawdź stan wtyczek, wersje PHP, a także dzienniki aktywności.
Podsumowanie
„Contact Form 7 Datepicker” to przykład wtyczki, która z pozoru spełniała przydatną funkcję, ale z czasem stała się poważnym zagrożeniem dla każdej strony, która jej używa. Brak aktualizacji, poważna luka XSS i całkowity brak reakcji ze strony autorów sprawiają, że nie ma co się łudzić – to nie kwestia „czy” tylko „kiedy” zostaniesz zhakowany, jeśli zostawisz ją aktywną.
Jeśli zależy Ci na bezpieczeństwie swojej strony, danych odwiedzających oraz własnym spokoju ducha – usuń ją natychmiast i zadbaj o bezpieczną alternatywę.
Oo dzięki za informacje widziałam na moim blogu tą wtyczkę ale chyba była zainstalowana z góry;/