Nie wcześniej niż od 04.11.2017, w systemach zarządzania treścią (CMS) marki WordPress nie działały mi formularze z wtyczki Contact Form 7 (CF7). Próba wysłania formularza powodowała pojawienie się kręcącego się kółka, że trwa akcja (wykonywanie zadania), jednak nigdy nic się dalej nie działo. Formularz nie był wysyłany, mejle nie dochodziły. Nie było żadnego komunikatu o błędach. Wtyczki Flamingo (inbound messages) ani Post SMTP Mailer (email log) też nie widziały żadnych wysłanych mejli.
Jak się okazało, inna wtyczka bezpieczeństwa WP Cerber Security & Antispam zaczęła blokować ze względów bezpieczeństwa interfejs programowania aplikacji (czyli API) o nazwie REST. Kiedyś REST API było inną wtyczką, teraz jest już wbudowana w samego WordPressa. Idea REST API (en/pl-wiki,WP) polega na możliwości dostępu do strukturalnie wybranych zawężonych określonych danych witryny. Czyli witryna jest raz dostępna przez całościowo sformatowaną dla WWW/HTML gotową szatę graficzną dla przeglądarek internetowych. Drugi raz jest dostępna przez drobne porcje (fragmenty) danych w formacie wymiany danych JSON w JavaScript, które różne podmioty mogą pobierać, przekształcać, wykorzystywać i wyświetlać na nowo (en/pl-wiki, org, w3s). Coś jak kanały Atom/RSS agregujące treści (feed), tylko bardziej przemyślane i zaawansowane (pl-wiki). Przydatne mogłoby to być do ponownego wykorzystania danych np. publicznych. W taki sposób mogą powstawać alternatywne serwisy jak Moje Państwo. Wracając jednak do sedna mojego problemu.
Autor formularzowej wtyczki CF7 o swojej domyślnej niekompatybilności wie. Proponuje wyłączenie ładowania JavaScript wtyczki poprzez dopisanie define(’WPCF7_LOAD_JS’,false) do pliku wp-config.php. WP Cerber proponuje moim zdaniem lepsze rozwiązanie. Umożliwia bowiem dodanie przestrzeni nazw „contact-form-7” (tj. takiej jak nazwa formularzowej wtyczki) do białej listy (whitelist) przy wciąż włączonej ogólnej blokadzie REST API w ustawieniach wtyczki bezpieczeństwa Cerber (Kokpit→Wzmacnianie). Szkoda, że wtyczki same nie komunikują administracji witryny o takim felerze, że coś się między nimi zmieniło. Na stronach wtyczek doszukałem się odpowiedzi na najczęściej zadawane pytania (FAQ), ale wewnątrz WP alertu o tym nie było.
Formularze na naszych witrynach zatem przywrócone.