✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Zdalne żądania za pomocą wp_safe_remote_get

13

Wczoraj udostępniłem post o tym, jak używać wp_remote_get, ale pominąłem alternatywną funkcję: wp_safe_remote_get. Pierwotnym celem było wykorzystanie pierwszego postu do pokazania:

  1. Co akceptuje oryginalna funkcja,
  2. Jak korzystać z oryginalnej funkcji,
  3. Co zwraca oryginalna funkcja,
  4. Jak wygląda wdrożenie.

A potem zamierzałem rzucić okiem na wp_safe_remote_get. Ale jest wyzwanie: mam mądrych przyjaciół. Niedługo po opublikowaniu posta otrzymuję odpowiedź od Roya :

Dzięki, Roy! (Pamiętaj, aby powiedzieć mu „Cześć!". 🙂

Ale poważnie, kontynuacja wczorajszego postu jest dokładnie taka: wp_safe_remote_get. I jest to jak określić różnicę w tych dwóch funkcjach i kiedy użyjesz jednej nad drugą.

wp_safe_remote_get

Prosto z dokumentacji API dowiadujemy się :

Ta funkcja jest idealna, gdy żądanie HTTP jest kierowane do dowolnego adresu URL. Adres URL jest weryfikowany, aby uniknąć przekierowań i ataków fałszowania żądań.

I podobnie jak jego odpowiednik, akceptuje adres URL i szereg argumentów, które mogą określić sposób wykonania żądania.

Co więcej, podobnie jak wp_remote_get, zwraca również tablicę danych odpowiedzi lub instancję, WP_Errorjeśli żądanie się nie powiedzie.

Korzystanie z tej funkcji nie różni się od poprzedniej, ale rodzi pytanie:

Kiedy używamy jednego nad drugim? Dokładniej, kiedy używamy wp_remote_getversus wp_safe_remote_get?

Przeczytaj źródło

Kiedy masz do czynienia z taką sytuacją, pierwszą najlepszą rzeczą do zrobienia jest przeczytanie źródła:

  1. wp_remote_get
  2. wp_safe_remote_get

Jeśli przeczytasz powyższe linki, zauważysz, że ten ostatni odrzuca „niebezpieczne adresy URL”, które są określane przez wp_http_validate_url w serii zaawansowanych kontroli.

Ale nadal, czego używam?

To wciąż pozostawia pytanie bez odpowiedzi, prawda? Myślę, że łatwo jest zrobić ogólne oświadczenie, że zawsze powinieneś używać wp_safe_remote_get (lub wp_safe_remote_post, jeśli o to chodzi).

Wszystkie projekty są jednak inne.

Na przykład, jeśli pracujesz nad wtyczką, która będzie używana tylko w intranecie i masz kontrolę nad, powiedzmy, białą listą adresów URL, które można przekazać do funkcji, możesz użyć tego pierwszego.

Jeśli jednak udostępniasz to drugie użytkownikom, zawsze używaj bezpiecznej wersji funkcji.

W skrócie

Moja praktyczna zasada jest taka (i jest podobna do sanityzacji):

Jeśli użytkownicy zamierzają wchodzić w interakcję z funkcją, upewnij się, że korzystają z najbezpieczniejszej możliwej wersji kodu.

W przeciwnym razie zagrożone jest zbyt wiele.

Źródło nagrywania: tommcfarlin.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów