我最近听说有人说WordPress确实会将有关您博客的数据发送回国内。真的吗?如果是的话,那是什么数据,或者在代码中的什么地方可以看到交换的内容?

评论

@Otto可以为您提供最佳的存储数据评估以及最终使用方式的信息。

还请参阅当Wordpress自动检查更新时,正在传输我的博客和个人数据中的哪一个?

#1 楼

是的,它确实。请参阅票证#16778,wordpress在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 );


...并获取请求URL作为回调的第二个参数。现在,您可以检查URL是否包含http://api.wordpress.org/core/version-check/,并根据需要更改所有值,以取消请求并发送新请求。仍然无法仅更改URL,这就是我在票证中创建补丁的原因。

#2 楼

据我所知,当使用.org API(安装/搜索/更新)时,WordPress会将版本数据发送回.org。然后将该数据整理成图表图形。您可以在此处查看数据。我认为在绘制环境要求的路线图时也使用此方法(即PHP4> PHP5,MySQL版本支持等...)。

以下是.org stats数据的示例:



作为附带说明,必须始终安装插件来自受信任的来源。奥托(Otto)和插件目录的其他策展人都做了出色的工作,清除了使用base64 + eval将个人信息发送回不道德的插件作者的插件。我可以保证每周都会在存储库中弹出一些内容。这也适用于.org仓库之外的主题。

我听说过要创建一个插件审查小组(类似于主题审查小组),以确保仓库中存储库的完整性。未来。您可以加入wp-hackers邮件列表,并在那里获取更多信息。正是这些讨论真正充实的地方。

#3 楼

是的,你是对的。 WordPress更新检查器,插件更新检查器和主题更新检查器会发送有关


您的IP的常规信息
博客URL
WordPress版本
PHP版本
如果有一个插件,则设置语言环境
插件标题,描述,作者-包括构成该插件一部分的所有URL。
您网站上所有插件的完整列表,无论它们是否处于活动状态。

到api.wordpress.org网站。自2007年以来,这是一个古老的讨论。您可以在我的WordPress电话主页-间谍软件或辩护文章中了解更多信息。

评论


阅读代码,我看不到任何包含插件信息的代码。我认为那部分可能不正确。

–罗马
2012年9月10日下午5:22