diff --git a/wp-includes/comment.php b/wp-includes/comment.php index e65f9d356..186d7409a 100644 --- a/wp-includes/comment.php +++ b/wp-includes/comment.php @@ -1254,7 +1254,12 @@ function discover_pingback_server_uri($url, $deprecated = 2048) { if ( ! isset( $parsed_url['host'] ) ) // Not an URL. This should never happen. return false; - $response = wp_remote_get( $url, array( 'timeout' => 2, 'httpversion' => '1.1' ) ); + //Do not search for a pingback server on our own uploads + $uploads_dir = wp_upload_dir(); + if ( 0 === strpos($url, $uploads_dir['baseurl']) ) + return false; + + $response = wp_remote_head( $url, array( 'timeout' => 2, 'httpversion' => '1.0' ) ); if ( is_wp_error( $response ) ) return false; @@ -1266,6 +1271,12 @@ function discover_pingback_server_uri($url, $deprecated = 2048) { if ( isset( $response['headers']['content-type'] ) && preg_match('#(image|audio|video|model)/#is', $response['headers']['content-type']) ) return false; + // Now do a GET since we're going to look in the html headers (and we're sure its not a binary file) + $response = wp_remote_get( $url, array( 'timeout' => 2, 'httpversion' => '1.0' ) ); + + if ( is_wp_error( $response ) ) + return false; + $contents = $response['body']; $pingback_link_offset_dquote = strpos($contents, $pingback_str_dquote);