Przewodnik po liczbach jednorazowych w WordPress

Opublikowany: 2023-02-12

Bezpieczeństwo to ważny temat dla wszystkich właścicieli witryn. Chociaż istnieje wiele strategii zapewniających bezpieczeństwo witryny, nie należy przeoczyć używania wartości jednorazowych w WordPress. Jest to jedna z najczęściej używanych funkcji bezpieczeństwa, która zapobiega wielu potencjalnym problemom.

Nonce to „liczba użyta raz”, która chroni formularze i adresy URL przed złośliwymi osobami i innymi nadużyciami. Liczby te działają jako wartości identyfikacyjne, które przeglądarki użytkowników będą musiały pokazać, aby uzyskać pozwolenie na wykonanie wrażliwych działań.

W tym artykule przyjrzymy się, jak działają nonces w WordPress i jak je tworzyć. Następnie omówimy, jak zweryfikować wartość jednorazową. Zacznijmy!

Spis treści
1. Jak działają nonces w WordPress?
2. Tworzenie wartości jednorazowej
3. Weryfikacja wartości jednorazowej
4. Twórz bezpieczne środowiska cyfrowe na silniku WP

Jak działają nonces w WordPress?

Podstawowym celem nonce jest ochrona witryny WordPress przed złośliwymi atakami, takimi jak fałszerstwa żądań między witrynami (CSRF). Ten rodzaj ataku nakłania użytkowników do przesłania formularza lub kliknięcia linku, który jest szkodliwy dla Twojej witryny. Aby chronić Twoją witrynę, WordPress sprawdza wartość jednorazową i zezwala na ukończenie akcji tylko wtedy, gdy ta wartość jest poprawna.

Jednostki są już częścią funkcjonalności WordPress i nie musisz dodawać ich do elementów generowanych przez WordPress. Oznacza to, że kluczowe działania, takie jak dodawanie i edytowanie postów, są automatycznie chronione.

Gdy używana jest wartość nonce, jej domyślna żywotność wynosi 24 godziny. Po tym czasie identyfikatora jednorazowego nie można już używać do weryfikacji akcji, dla której został zdefiniowany. Jednak ta żywotność może być regulowana przez administratorów strony.

Jednym z najczęstszych ataków CSRF, przed którymi chronią nonces, jest złośliwe usuwanie kont użytkowników. Po zaimplementowaniu wartości jednorazowej ekran administratora wygeneruje adres URL do usunięcia konta. WordPress doda jednorazówkę na końcu tego adresu URL, który będzie wyglądał mniej więcej tak:

http://twojadomena.com/wp-admin/users.php?user=7&action=delete&_wpnonce=c214gd5315

Jeśli atakujący spróbuje zastąpić identyfikator użytkownika inną wartością, na przykład „użytkownik=8”, wartość jednorazowa będzie nieprawidłowa. Usunięcie konta nie powiedzie się i zostanie wyświetlona strona błędu 403 Forbidden. Dzięki temu złośliwym osobom znacznie trudniej jest zaatakować zawartość Twojej witryny.

Wiedza o tym, że nonces może chronić Twoją witrynę, jest ważna, ale musisz także zrozumieć, jak je wdrożyć. Chociaż są one już aktywne dla domyślnych funkcji WordPress, może być konieczne ręczne zaimplementowanie ich dla motywów i wtyczek.

Tworzenie Nonce

Aby utworzyć identyfikator jednorazowy, musisz dodać funkcję do kodu swojej witryny. Wszystkie kody tworzenia nonce są umieszczane w pliku functions.php . Aby otworzyć ten plik, przejdź do Wygląd > Edytor motywów na pulpicie nawigacyjnym WordPress. Po prawej stronie kliknij functions.php , aby otworzyć edytor plików.

Nonces są implementowane oddzielnie dla adresów URL, formularzy i akcji. Aby utworzyć akcję nonce, dodaj następujący kod do tego pliku:

 $nonce= wp_create_nonce('$action');

Sekcja „$action” kodu powinna zostać dostosowana tak, aby odzwierciedlała akcję, którą ma zweryfikować nonce. Przykładem może być użycie akcji „delete-post”, która ustawia identyfikator jednorazowy do weryfikacji użytkowników, którzy próbują usunąć posty.

Aby utworzyć wartość jednorazową dla adresu URL, możesz użyć następującego kodu:

 $nonce= wp_nonce_url();

W nawiasach należy podać argumenty funkcji. To jest sam adres URL i ciąg działań użytkownika. Ciąg powinien być specyficzny dla pojedynczego użytkownika, aby poprawić bezpieczeństwo wartości jednorazowej.

Jeśli chcesz utworzyć identyfikator jednorazowy do usunięcia konta użytkownika, możesz użyć tego fragmentu kodu:

 $nonce= wp_nonce_url($bare_url,'delete-user_'.$user->ID);

WordPress domyślnie ustawi nazwę nonce na „_wpnonce”, ale możesz to zaktualizować, dodając wybraną nazwę na końcu powyższego ciągu.

Aby utworzyć nonce dla formularza, dołącz ten kod:

 $nonce= wp_nonce_field();

W nawiasach musisz dodać ciąg działań użytkownika. Po zakończeniu funkcja tworzy dwa ukryte pola w formularzu, z których pierwsze zawiera wartość skrótu nonce. Drugie pole to bieżący adres URL. Ostateczna funkcja powinna wyglądać mniej więcej tak:

 $nonce= wp_nonce_field('remove-comment_'.$comment_id);

Ta funkcja jednorazowa będzie miała również domyślną nazwę jednorazową WordPress. Jednak jest to również coś, co możesz zmodyfikować, jeśli wolisz.

Weryfikacja wartości jednorazowej

Po dodaniu wartości jednorazowej do witryny WordPress ważne jest, aby ją zweryfikować. Dzięki temu nonce działa poprawnie i zapewnia bezpieczeństwo Twojej witryny.

Do weryfikacji wartości jednorazowych dla adresów URL i formularzy używane są różne metody. Aby zweryfikować jednorazowy adres URL, dodaj następujący kod do pliku functions.php :

 wp_verify_nonce($nonce, $action);

W tej funkcji dostosuj „$nonce” do nazwy jednorazowej, którą chcesz zweryfikować, na przykład „delete-user”. Następnie zmień ciąg „$action” na określony czas utworzenia wartości jednorazowej. Po uruchomieniu funkcja zwróci „false”, jeśli wartość jednorazowa jest nieprawidłowa.

Z drugiej strony, jeśli wartość jednorazowa jest poprawna, funkcja zwróci 1 lub 2. To mówi o wieku wartości jednorazowej. Wartość równa 1 oznacza, że ​​wartość jednorazowa została utworzona w ciągu ostatnich 12 godzin. Wartość równa 2 oznacza, że ​​wartość nonce została utworzona w ciągu 12 godzin, ale mniej niż 24 godziny temu.

Jeśli dodałeś wartość jednorazową do formularza, do jej zweryfikowania wymagany jest następujący kod:

 check_admin_referer($action, $nonce);

Jeśli wartość jednorazowa jest poprawna, formularz będzie działał zgodnie z przeznaczeniem. Jeśli jednak wartość jednorazowa jest nieprawidłowa, przeglądarka użytkownika przekieruje go na stronę błędu 403 Forbidden.

Twórz bezpieczne środowiska cyfrowe na silniku WP

Bezpieczeństwo ma kluczowe znaczenie dla stabilnej strony internetowej, a nonces dodaje dodatkową warstwę ochrony. Aby je zaimplementować, wystarczy dodać kod do pliku functions.php . Używany kod różni się w zależności od typu jednorazowego użytku, który chcesz utworzyć, oraz akcji, którą chcesz chronić.

Chociaż tworzenie i wdrażanie pojedynczych elementów zwiększa bezpieczeństwo witryny, należy również wziąć pod uwagę inne protokoły bezpieczeństwa. Na szczęście bezpieczna platforma hostingowa WordPress WP Engine oferuje jedne z najlepszych zasobów bezpieczeństwa dla użytkowników i programistów. Dzięki temu masz więcej czasu na skupienie się na doskonaleniu witryny WordPress!