web-dev-qa-db-ja.com

WordPressはあなたのブログに関するデータをWordPress.orgまたはAutomatticに送信しますか?

最近、WordPressがあなたのブログに関するデータを自宅に送信すると言う人がいるのを聞いたことがあります。本当?もしそうなら、それがどんなデータなのか、あるいはコードのどこに私は交換されたものを見ることができますか?

40
Roman

はい、そうです。 チケット#16778を参照してください。ワードプレスはwp_version_check()中にユーザー/ブログ情報を漏らしています 詳細はすべて/wp-includes/update.phpにあります。

if ( is_multisite( ) ) {
    $user_count = get_user_count( );
    $num_blogs = get_blog_count( );
    $wp_install = network_site_url( );
    $multisite_enabled = 1;
} else {
    $user_count = count_users( );
    $user_count = $user_count['total_users'];
    $multisite_enabled = 0;
    $num_blogs = 1;
    $wp_install = home_url( '/' );
}

$query = array(
    'version'           => $wp_version,
    'php'               => $php_version,
    'locale'            => $locale,
    'mysql'             => $mysql_version,
    'local_package'     => isset( $wp_local_package ) ? $wp_local_package : '',
    'blogs'             => $num_blogs,
    'users'             => $user_count,
    'multisite_enabled' => $multisite_enabled
);

$url = 'http://api.wordpress.org/core/version-check/1.6/?' . http_build_query( $query, null, '&' );

$options = array(
    'timeout' => ( ( defined('DOING_CRON') && DOING_CRON ) ? 30 : 3 ),
    'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url( '/' ),
    'headers' => array(
        'wp_install' => $wp_install,
        'wp_blog' => home_url( '/' )
    )
);

$response = wp_remote_get($url, $options);

ユーザーエージェントはあなたのインストールのURLを含んでいるので、これらのデータの全てはもう匿名ではありません。プライバシーを保護するために'http_request_args'をフィルタリングし、漏洩したくないデータを変更します。

これはUA文字列を匿名化する簡単な例です( 最近のブログ記事 から):

add_filter( 'http_request_args', 't5_anonymize_ua_string' );

/**
 * Replace the UA string.
 *
 * @param  array $args Request arguments
 * @return array
 */
function t5_anonymize_ua_string( $args )
{
    global $wp_version;
    $args['user-agent'] = 'WordPress/' . $wp_version;

    // catch data set by wp_version_check()
    if ( isset ( $args['headers']['wp_install'] ) )
    {
        $args['headers']['wp_install'] = 'http://example.com';
        $args['headers']['wp_blog']    = 'http://example.com';
    }
    return $args;
}

あなたはそれをに変更することができます…

add_filter( 'http_request_args', 't5_anonymize_ua_string', 10, 2 );

…そしてコールバックの2番目のパラメータとしてリクエストURLを取得します。これで、URLにhttp://api.wordpress.org/core/version-check/が含まれているかどうかを確認できます。 必要に応じてすべての値を変更します リクエストをキャンセルして新しいリクエストを送信してください。 URLだけを変更する方法はまだありません。そのため、チケットにパッチを作成しました。

30
fuxia

私の知る限りでは、.org API(インストール/検索/更新)を使用している場合、WordPressはバージョンデータを.orgに送り返します。そのデータはチャートのグラフィックに照合されます。データを見ることができます ここ 。私はこれが環境要件(すなわち、PHP4> PHP5、MySQLバージョンのサポートなど)のためにロードマップをプロットするときにも使われると思います。

これは、.org統計データがどのようになるかのサンプルです。

enter image description here

ちなみに、信頼できるソースからプラグインをインストールすることは常に必須です。 Ottoや他のプラグインディレクトリ管理者は、base64 + evalを使用して個人情報を悪質でないプラグインの作者に送り返すプラグインを排除して素晴らしい仕事をしています。私はリポジトリに毎週ポップアップするものがあることを保証することができます。これは.orgリポジトリ以外のテーマにも適用されます。

将来的にリポジトリの整合性を確保するプラグインレビューチーム(テーマレビューチームと同様)を作成するという話を聞いたことがあります。あなたはwp-hackersメーリングリストに参加することができます、そして そこにもっと情報を得ることができます 。それこそが、この種の議論が真に強調されているところです。

13
Brian Fegter

はい。それで合っています。ワードプレスの更新チェッカー、プラグインの更新チェッカー、およびテーマの更新チェッカーは、以下について定期的に情報を送信します。

  • あなたのIP
  • ブログのURL
  • WordPressのバージョン
  • PHPバージョン
  • ロケール設定があれば
  • プラグインのタイトル、説明、作者 - これを構成するすべてのURLを含みます。
  • あなたのサイトにあるすべてのプラグインの完全なリストです。

api.wordpress.orgサイトへ。これは2007年以来の古い議論です。あなたはそれについてもっと私の投稿で読むことができます WordPress電話ホーム - スパイウェアまたはJustified post.

7
Sarath