WordPress는 블로그에 대한 데이터를 WordPress.org 또는 Automattic으로 전송합니까?


40

최근에 누군가 워드 프레스가 블로그에 대한 데이터를 집으로 보낸다고 들었습니다. 그게 사실입니까? 그렇다면 어떤 데이터가 있거나 코드의 어디에 데이터가 교환되는지 볼 수 있습니까?


1
@Otto는 어떤 데이터가 저장되고 궁극적으로 어떻게 사용되는지에 대한 최상의 평가를 제공 할 수 있습니다.
Brian Fegter

답변:


30

그렇습니다. 참조 티켓 # 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 );

… 콜백의 두 번째 매개 변수로 요청 URL을 가져옵니다. 이제 URL에 포함되어 있는지 확인 http://api.wordpress.org/core/version-check/하고원하는대로 모든 값을 변경하십시오요청을 취소하고 새 요청을 보내십시오. 여전히 URL 만 변경할 수있는 방법이 없기 때문에 티켓에 패치를 작성했습니다.


13

.org API (설치 / 검색 / 업데이트)를 사용하면 WordPress에서 .org로 버전 데이터를 다시 보냅니다. 그런 다음 해당 데이터는 차트 그래픽으로 정렬됩니다. 여기 에서 데이터를 볼 수 있습니다 . 환경 요구 사항 (예 : PHP4> PHP5, MySQL 버전 지원 등)에 대한 로드맵을 그릴 때도 사용한다고 가정합니다.

다음은 .org 통계 데이터의 예입니다.

여기에 이미지 설명을 입력하십시오

참고로, 신뢰할 수있는 소스에서 플러그인을 설치해야합니다. Otto와 플러그인 디렉토리의 다른 큐레이터는 base64 + eval을 사용하여 개인 정보를 파렴치한 플러그인 작성자에게 돌려주는 플러그인을 제거하는 데 큰 역할을했습니다. 나는 매주 저장소에 팝업이있는 것을 보장 할 수 있습니다. 이는 .org 저장소 외부의 테마에도 적용됩니다.

향후 저장소의 무결성을 보장 할 플러그인 검토 팀 (테마 검토 팀과 유사)을 작성하는 것에 대해 들었습니다. wp-hackers 메일 링리스트에 가입하여 자세한 정보를 얻을 수 있습니다 . 이러한 유형의 토론이 실제로 진행되는 곳입니다.


7

그래 너가 옳아. 워드 프레스 업데이트 검사기, 플러그인 업데이트 검사기 및 테마 업데이트 검사기는

  • 당신의 IP
  • 블로그 URL
  • 워드 프레스 버전
  • PHP 버전
  • 로캘 설정이있는 경우
  • 플러그인 제목, 설명, 저자 – 이것의 일부를 구성하는 모든 URL 포함.
  • 활성화 여부에 관계없이 사이트의 모든 플러그인의 전체 목록입니다.

api.wordpress.org 사이트로 이동하십시오. 이것은 2007 년 이후의 오래된 토론입니다. 내 게시물 WordPress phone home-Spyware 또는 Justified post 에서 더 많은 내용을 읽을 수 있습니다 .


코드를 읽는 중 플러그인 정보가 포함 된 코드가 없습니다. 나는 그 부분이 사실이 아닐 수도 있다고 생각한다.
로마
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.