O czym należy pamiętać podczas tworzenia wtyczki WordPress od podstaw
Opublikowany: 2022-01-02Wtyczka WordPress to w rzeczywistości pojedynczy plik lub grupa plików, która rozszerza lub poprawia funkcjonalność witryny WordPress.
Każdy nowy programista wie „Jak kodować?”, ale tworząc wtyczkę w WordPressie, programista musi pamiętać o kilku podstawowych wymaganiach dotyczących tworzenia wtyczki WordPress, oprócz jakości kodu, bezpieczeństwa i funkcjonalności.
W tym przewodniku opisano ważne kroki, o których należy pamiętać podczas tworzenia wtyczek WordPress od podstaw.
We wtyczkach WordPress, kluczową rzeczą do zrozumienia są WordPress Hooki, np. akcje i filtry. Hooki pozwalają wtyczkom działać ze zdefiniowaną funkcjonalnością w określonych momentach w ramach funkcji WordPress.
Lista haków akcji : https://codex.wordpress.org/Plugin_API/Action_Reference
zdefiniuj( 'WP_DEBUG', prawda ); --- Opcja WP_DEBUG została dodana w wersji WordPress 2.3.1. --- Domyślnie zakłada się, że jest fałszywe. Jednak zwykle jest ustawiony na true w pliku wp-config.php.
-> Dodaj nagłówek informacji o wtyczce do naszego nowo utworzonego pliku w folderze wtyczek.
/* Nazwa wtyczki: Typ postu z referencjami URI wtyczki: https://wordpress.org/plugins/testimonial-post-type/ Opis: Utwórz typy postów z referencjami, to taksonomia i tagi. Wersja: 1.0 Autor: Elsner Technologies Sp. Sp. z o.o. URI autora: https://www.elsner.com Domena tekstowa: referencja-post-type Ścieżka domeny: /języki */
Powiązane : Niedawno uruchomiona wtyczka WordPress Elsnera: Posts Slider Shortcode
–> Wszystkie wtyczki muszą mieć unikalne nazwy funkcji, definicje i nazwy klas.
Zapobiega to konfliktom wtyczki z innymi wtyczkami lub motywami.
-> Nie używaj __ (podwójne podkreślenia), wp_ lub _ (pojedyncze podkreślenie) jako przedrostka.
Są one zarezerwowane dla samego WordPressa. Możesz ich używać w swoich zajęciach, ale nie jako samodzielnej funkcji
-> Proszę zabezpieczyć swoją wtyczkę przed bezpośrednim dostępem do plików.
if ( ! define( 'ABSPATH' ) ) zakończ; // Zakończ, jeśli uzyskano bezpośredni dostęp
— Możesz uniknąć bezpośredniego dostępu do plików, umieszczając ten kod na górze wszystkich plików php:
–> Dodaj jednorazową wartość do swoich wywołań POST, aby zapobiec nieautoryzowanemu dostępowi.
nonce (liczba użyta raz)
WordPress nonces nie są liczbami, ale hashem składającym się z cyfr i liter. Nie są też używane tylko raz, ale mają ograniczony „żywotność”, po którym wygasają.
Zwykle generujemy taki adres URL, który usuwa post_id 174
http://example.com/wp-admin/post.php?post=123&action=trash
Ten adres URL jest doskonały, ale nie jest bezpieczny. Załóżmy, że atakujący zna identyfikator postów, a następnie osoba atakująca może usunąć posty z tym adresem URL bez Twojej wiedzy.
Dodanie jednokrotności zapobiegnie temu. Na przykład w przypadku użycia jednorazowego adresu URL, który WordPress generuje dla użytkownika, wygląda tak:
http://example.com/wp-admin/post.php?post=123&action=trash&_wpnonce=b192fc4204
$nonce = wp_create_nonce( 'my-action_trash' );— To po prostu zwraca samą wartość nonce.
— Ta wartość, którą możesz umieścić w adresie URL, np.
action='http://example.com/wp-admin/post.php?post=123&action=trash&_wpnonce='.$nonce;
— Weryfikowanie jednokrotności przekazanej w adresie URL
wp_verify_nonce( $_REQUEST['_wpnonce'], 'my-action_trash' );Powiązane : Jak przesłać swoją wtyczkę do katalogu wtyczek WordPress?

–> Oczyść, ucieknij i zatwierdź swoje połączenia POST
Odkażanie: czyszczenie danych wejściowych użytkownika
Nigdy nie należy umieszczać surowych danych w bazie danych, nawet za pomocą funkcji aktualizacji lub wywołania przygotowanie().
Oczyszczanie danych POST używanych do wykonywania wywołań akcji lub przekierowań adresów URL zmniejszy możliwość wystąpienia luk XSS.
sanitize_text_field($_POST['post_name']);
— Dane można oczyszczać za pomocą powyższej funkcji.
— Za kulisami funkcja wykonuje następujące czynności:
Sprawdza nieprawidłowy kod UTF-8
Konwertuje pojedyncze < znaków na encję
Zdziera wszystkie tagi
Usuń podziały wierszy, tabulatory i dodatkowe spacje
Oktety paskowe
— sanitize_*() klasa funkcji pomocniczych
https://developer.wordpress.org/plugins/security/securing-input/
Zatwierdź: sprawdzanie danych wprowadzonych przez użytkownika
Oprócz odkażania należy sprawdzić poprawność wszystkich połączeń. Jeśli wywołanie $_POST powinno być tylko liczbą, upewnij się, że jest to int(), zanim przekażesz je przez cokolwiek. Za każdym razem, gdy dodajesz dane do bazy, powinny to być prawidłowe dane.
intval( $_POST['post'] ); --- jeśli $_POST['post']
ma wartość liczbową, zwróci true. Jeśli nie, to fałsz.
Ucieczka: zabezpieczenie wyjścia
Ucieczka polega na zabraniu danych, które już posiadasz, i zabezpieczeniu ich przed udostępnieniem ich użytkownikowi końcowemu.
Ucieczka / rzucanie na wyjściu po prostu usuwa wszelkie niejasności i dodaje przejrzystości.
<h4> <?php echo esc_html( $tytuł ); ?> </h4> --- esc_html()
powinien być używany w sytuacjach, gdy element HTML zawiera sekcję danych, których dane wyjściowe mamy.
esc_html ( ciąg $tekst )Ucieczka do bloków HTML.
esc_html_e ( ciąg $tekst )Wyświetla przetłumaczony tekst, który został zmieniony w celu bezpiecznego użycia w danych wyjściowych HTML.
esc_html__ ( ciąg $tekst )Pobierz tłumaczenie $text i wyjdzie z niego do bezpiecznego użycia w danych wyjściowych HTML.
<img alt="" src="<?php echo esc_url( $picture_url ); ?>
--- esc_url()powinny być używane w każdym adresie URL, w tym w atrybutach „src” i „href” elementu HTML.
<?php echo esc_js( $wartość ); ?> --- esc_js()
jest przeznaczony do wbudowanego JavaScript.
<ul class="<?php echo esc_attr( $stored_class ); ?>">
--- esc_attr()jest użyteczny na wszystkim innym, co jest drukowane w atrybucie elementu HTML.
Notatka :-
Sprawdź poniższy link, aby dowiedzieć się, gdzie znajdują się foldery i jak najlepiej do nich zadzwonić
https://codex.wordpress.org/Determining_Plugin_and_Content_Directories
Jeśli to możliwe, zapisz dane w tabelach wp_options.
Ostatecznym celem tego wszystkiego jest zapewnienie, że nieprawidłowe i niezabezpieczone dane nigdy nie będą przetwarzane ani wyświetlane. Wyczyść, sprawdź, ucieknij od wszystkiego. Ponadto nigdy nie ufaj użytkownikom, że zawsze mają dane wejściowe na rozsądnym poziomie.
Powiązane: Jak dostosować stronę logowania WordPress
