JetpackとXML-RPC

XML-RPCは、JetpackがサイトをWordPress.comに接続するために使用する通信プロトコルです。XML-RPCと、Jetpackを支える仕組みについて詳しくご説明します。

XML-RPCとは何ですか?

XML-RPCは、Webサイトと外部サーバー間の通信を可能にするプロトコルです。Jetpackはこのプロトコルを使用してサイトをWordPress.comに接続します。WordPressのコアソフトウェアは、WordPressバージョン3.4以降、XML-RPCをサポートしており、安定したツールと見なされています。WordPressのXML-RPC APIと、その活用方法については、WordPress.orgの開発者向けリソースをご覧ください。

XML-RPCはどのように機能しますか?

Jetpackを使用すると、サイトがXML-RPCサーバーになり、WordPress.comがWordPress.comへの接続を確立する際に通信できるようになります。他のAPI実装と同様に、リモートから呼び出せるあらかじめ定められた手続きの一覧と、提供できるデータの具体的な一覧が必要です。

XML-RPCは非推奨になっていますか?

XML-RPCは人気が落ちているものの、現在も広く使用されています。新しいAPIはRESTやGraphQLなど、別の標準に基づいて構築されることが多い一方、XML-RPCは数多くの既存システムに統合されているため、当面なくなることはありません。

XML-RPCはPHPから削除されていますか?

PHP(PECL)XML-RPC拡張機能はXML-RPC APIの開発を簡略化する機能を提供します。PHP 8.0以降、この拡張機能はPHPに同梱されなくなり、別途インストールする必要があります。

Jetpackはこの拡張機能を使用しません。Jetpackサイトはこの変更の影響を受けません。 Jetpackには、このPHP拡張機能に依存しない独自のXML-RPC実装が含まれています。

XML-RPCの使用にはどのようなセキュリティ上の懸念がありますか?

ほとんどのテクノロジーと同様に、それ自体が安全というわけでも脆弱というわけでもありません。すべては具体的な実装によって異なり、JetpackはXML-RPCを使用する最も安全な方法を提供します。

XML-RPC APIの一般的な統合では、Webサイトとそれを利用するサービス間の通信を可能にするため、ユーザー名とパスワードを平文で送信します。そのため、このAPIの使用は安全性が低くなります。ただし、JetpackのXML-RPC統合は異なります。

一部のセキュリティプラグインやホストのファイアウォールは、xmlrpc.phpを完全にブロックします。これをブロックすると、WordPress.comがサイトに到達できなくなり、Jetpack接続が機能しなくなります。この状態になると、JetpackはWP管理画面に通知を表示します。解決方法については、Jetpackの問題を解決するサポートページをご覧ください。

JetpackのXML-RPC統合はどのように異なりますか?

Jetpackは、APIを介してユーザー名とパスワードを送信することなく、サイトをWordPress.comに接続します。接続方法が異なるのは、次のようなトークンベースのシステムを使用しているためです。OAuth。これは、ユーザー名とパスワードを送信する代わりに、JetpackがAPI署名と呼ばれる特殊な文字列を生成し、それをすべてのAPIリクエストに付加するということです。リクエストを送信する前に、API署名は秘密トークンを使用してエンコードされます。

秘密トークンは、メッセージを秘密のコードに変換するための暗号のようなものだと考えてください。まず、メッセージの送信者がその暗号を使ってメッセージを秘密のコードに変換します。次に、同じ暗号にアクセスできるメッセージの受信者が、その秘密のコードを元のメッセージに戻します。JetpackによるXML-RPCの使用方法も、これと非常によく似ています。

秘密トークン(別名、暗号)が存在する場所は、Jetpackサイトと、そのサイトが通信するWordPress.comサーバーだけです。つまり、途中でAPIリクエストが傍受されたとしても、API署名を復号する方法はありません。API署名の復号には秘密トークンへのアクセスが必要だからです。

この方法は、普遍的に安全で信頼性が高いと見なされており、RESTを含む他のAPI標準でも使用されています。

Jetpackがサイトと統合するために使用するXML-RPCプロセスの図解です。

REST APIよりもXML-RPCを使用する利点は何ですか?

Jetpackにとって、重要なのは安定性です。XML-RPCを使い続けることで、古いバージョンのJetpackを使用しているユーザーもJetpackの機能を引き続き活用できます。Jetpackプラグインを常に最新の状態に保つことを強くおすすめしますが、それが常に可能とは限らないことも理解しています。古いバージョンのプラグインを使用しているユーザーを見捨てたくはないため、可能な限りXML-RPCを使い続ける予定です。

将来、REST APIへ移行する必要が生じた場合は、切り替える前にユーザーの皆様へお知らせします。

Still need help?

Please contact support. We’re happy to advise.

Was this article helpful?