wp_remote_post
のドキュメントには があります
多くの場合、あなたは
wp_safe_remote_post
を使ったほうがよいでしょう。
ソースコードを見ると、両者の間で異なる唯一の行はwp_safe_remote_post
がこれを持っているということです:$args['reject_unsafe_urls'] = true;
この記事 は私が見つけた最良の説明であり、私がwp_remote_post
を使用するのは私が自分のサイトにリモート呼び出しをしているときだけであることを示しているようです。
それで、私はwp_remote_post
を使いたいという他の状況はありますか、それとも私はいつもwp_safe_remote_post
を固執するべきですか?
それで、私が他にwp_remote_postを使いたいという状況はありますか、それとも常にwp_safe_remote_postを使い続けるべきですか?
2つの関数は、 wp_safe_remote_post()
がreject_unsafe_urls
引数をtrueに設定すること以外はまったく同じです。この引数により、URLは wp_http_validate_url()
の WP_Http::request()
に渡されます。
その関数から、wp_remote_post()
の代わりにwp_safe_remote_post()
を使う必要があるというユースケースがいくつかあることがわかります。
wp_http_validate_url()
またはwp_safe_remote_post()
が呼び出されるかどうかにかかわらず、HTTPリクエストでwp_remote_post()
を介してURLを渡すために http_request_reject_unsafe_urls
フィルターを使用することも可能です。
[*] reject_unsafe_urls
が設定されていない場合でも、URLは wp_kses_bad_protocol()
を介して渡され、許可されるプロトコルはhttp、https、およびsslです。
[**] http_request_Host_is_external
フィルタを使用して真の値を返すことで、wp_safe_remove_post()
をローカルホストに使用することが可能です。
_safe_ 関数は、入力サニテーションにおける遅い試みのようなもので、コードがその点に到達するずっと前に起こったはずのものです。 (その時点で、ユーザーが解決しなければならない構成上の問題があることをユーザーに通知する機能がないと、要求は失敗します)。
あなたはおそらく常にそれらを使うべきで、あなたが "基本的な" URLフォーマットを持たずそして最も一般的なポート番号を使うものにアクセスしようとしたためにそれらが失敗する状況に対処する準備ができています。
何の質問?あなたはすべての興味ある情報を見つけました。
wp_safe_remote_post()
関数コメントは言う
POSTメソッドを使用して、安全なHTTPリクエストから生のレスポンスを取得します。この機能は、HTTPリクエストが任意のURLに対して行われている場合に理想的です。 URLはリダイレクトを回避し、偽造攻撃を要求するために検証されます。
私はいつもwp_safe_remote_post
を使うべきだと思います。安全です。