Etäpyynnöt wp_safe_remote_get-sovelluksella
Eilen jaoin viestin käyttämisestä, wp_remote_get
mutta jätin pois vaihtoehtoisen toiminnon: wp_safe_remote_get
. Alkuperäinen tavoite oli käyttää ensimmäistä viestiä näyttämään:
- Mitä alkuperäinen toiminto hyväksyy,
- Kuinka käyttää alkuperäistä toimintoa,
- Mitä alkuperäinen funktio palauttaa,
- Miltä toteutus näyttää.
Ja sitten menin katsomaan wp_safe_remote_get
. Mutta siinä on haaste: minulla on älykkäitä ystäviä. Pian julkaisun julkaisemisen jälkeen saan vastauksen Roylta :
Kiitos, Roy! (Muista sanoa hänelle "Hei!". 🙂
Mutta vakavasti, jatko eiliseen postaukseen on juuri tämä: wp_safe_remote_get
. Ja se, kuinka määrittää ero näiden kahden toiminnon välillä ja milloin käytät toista toiseen verrattuna.
wp_safe_remote_get
Suoraan API-dokumenteista opimme :
Tämä toiminto on ihanteellinen, kun HTTP-pyyntö tehdään mielivaltaiseen URL-osoitteeseen. URL-osoite tarkistetaan uudelleenohjauksen välttämiseksi ja väärennöshyökkäysten pyytämiseksi.
Ja samankaltaisesti kuin sen vastine, se hyväksyy URL-osoitteen ja sarjan argumentteja, jotka voivat määrittää, kuinka pyyntö tehdään.
Lisäksi, aivan kuten wp_remote_get
, se myös palauttaa joukon vastaustietoja tai esiintymän, WP_Error
jos pyyntö epäonnistuu.
Tämän toiminnon käyttäminen ei eroa edellisestä, mutta se herättää kysymyksen:
Milloin käytämme toista toisen päälle? Tarkemmin sanottuna, milloin käytämme wp_remote_get
verrattuna wp_safe_remote_get
?
Lue Lähde
Kun kohtaat tämänkaltaisen tilanteen, sinun kannattaa ensin lukea lähde:
Jos luet yllä olevat linkit, huomaat, että jälkimmäinen hylkää "turvattomat URL-osoitteet", jotka wp_http_validate_url määrittää useiden edistyneiden tarkistusten avulla.
Mutta silti, kumpaa käytän?
Tämä jättää kysymyksen edelleen vastaamatta, eikö niin? Mielestäni on helppo tehdä yleislausunto, että sinun tulee aina käyttää wp_safe_remote_get-käyttöjärjestelmää (tai wp_safe_remote_post).
Kaikki projektit ovat kuitenkin erilaisia.
Jos esimerkiksi työskentelet laajennuksen parissa, jota aiotaan käyttää vain intranetissä, ja voit hallita esimerkiksi sallittujen URL-osoitteiden luetteloa, joka voidaan siirtää funktioon, voit käyttää ensin mainittua.
Jos kuitenkin esität jälkimmäisen käyttäjille, käytä aina toiminnon turvallista versiota.
Lyhyesti
Nyrkkisääntöni on tämä (ja se on samanlainen kuin desinfiointi):
Jos käyttäjät ovat vuorovaikutuksessa toiminnon kanssa, varmista, että he ovat vuorovaikutuksessa koodin turvallisimman version kanssa.
Muuten vaarassa on liikaa.