662 lines
39 KiB
PHP
662 lines
39 KiB
PHP
<?php
|
|
/**
|
|
* Per-plugin safe profiles.
|
|
*
|
|
* @package RobotstxtTelemetry
|
|
*/
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
|
|
if ( ! class_exists( 'Robotstxt_Telemetry_Plugin_Profiles' ) ) {
|
|
/**
|
|
* Class Robotstxt_Telemetry_Plugin_Profiles
|
|
*
|
|
* Registry of the telemetry behaviors observed in popular plugins. Each
|
|
* entry lists the request matchers used by the Safe mode and a human
|
|
* readable explanation of what is truncated and what is kept.
|
|
*
|
|
* Matcher fields:
|
|
* - host / host_contains: destination match.
|
|
* - path: regex matched against the request path.
|
|
* - do: block | strip_query | strip_body | strip_headers | strip_ua.
|
|
* - keys / headers: fields affected by strip_* actions.
|
|
*/
|
|
final class Robotstxt_Telemetry_Plugin_Profiles {
|
|
|
|
/**
|
|
* Cached profile registry (built once per request).
|
|
*
|
|
* @var array|null
|
|
*/
|
|
private static $cache = null;
|
|
|
|
/**
|
|
* Get every known profile, keyed by plugin slug.
|
|
*
|
|
* The array is built on demand so translations are loaded.
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function get_profiles() {
|
|
if ( null !== self::$cache ) {
|
|
return self::$cache;
|
|
}
|
|
|
|
$freemius = self::freemius_matchers();
|
|
$bsf = self::bsf_matchers();
|
|
$isle = self::themeisle_matchers();
|
|
$mixpanel = self::mixpanel_matchers();
|
|
$wpmudev = self::wpmudev_matchers();
|
|
|
|
$profiles = array(
|
|
'ad-inserter' => array(
|
|
'matchers' => array( array( 'host' => 'analytics.adinserter.pro', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the analytics.adinserter.pro telemetry (site URL, site name, WordPress and PHP versions, admin email, plugin list and options). Update checks keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'all-in-one-seo-pack' => array(
|
|
'matchers' => array( array( 'host_contains' => 'aioseo', 'do' => 'strip_ua' ) ),
|
|
'note' => __( 'Removes the WordPress version and site URL from the API User-Agent. The connect flow keeps sending the site URL because it is the account identifier.', 'robotstxt-telemetry' ),
|
|
),
|
|
'all-in-one-wp-migration' => array(
|
|
'matchers' => array( array( 'host_contains' => 'servmask', 'do' => 'strip_query', 'keys' => array( 'site_url', 'admin_email' ) ) ),
|
|
'note' => __( 'Removes the site URL and the admin email from the extension update-check query. Extension updates keep working (they only need the purchased extension slug and version).', 'robotstxt-telemetry' ),
|
|
),
|
|
'antispam-bee' => array(
|
|
'matchers' => array(
|
|
array( 'host' => 'api.pluginkollektiv.org', 'do' => 'block' ),
|
|
array( 'host_contains' => 'iplocate.io', 'do' => 'block' ),
|
|
),
|
|
'note' => __( 'Blocks the comment-language check (which sends the comment text) and the IP country lookup. All the local spam checks keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'astra-sites' => array(
|
|
'matchers' => array(
|
|
array( 'host_contains' => 'websitedemos', 'do' => 'strip_query', 'keys' => array( 'site_url', 'domain' ) ),
|
|
array( 'host_contains' => 'startertemplates', 'do' => 'strip_query', 'keys' => array( 'site_url', 'domain' ) ),
|
|
),
|
|
'note' => __( 'Removes the site URL from the starter-template requests. License validation keeps sending the site URL because it is the account identifier.', 'robotstxt-telemetry' ),
|
|
),
|
|
'autoptimize' => array(
|
|
'matchers' => array( array( 'host' => 'misc.optimizingmatters.com', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the usage ping. The critical CSS service keeps receiving the page URL because generating the CSS for a page requires that page URL.', 'robotstxt-telemetry' ),
|
|
),
|
|
'backwpup' => array(
|
|
'matchers' => $mixpanel,
|
|
'note' => __( 'Blocks the Mixpanel telemetry events (which include the site host and versions). Backup destinations are admin-configured and untouched.', 'robotstxt-telemetry' ),
|
|
),
|
|
'better-wp-security' => array(
|
|
'matchers' => array( array( 'path' => '#/telemetry#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the StellarWP telemetry reports. The brute-force network and licensing keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'breeze' => array(
|
|
'matchers' => array( array( 'host' => 'sitecheck.sucuri.net', 'do' => 'strip_headers', 'headers' => array( 'referer' ) ) ),
|
|
'note' => __( 'Removes the Referer header (your site URL) from the Sucuri site-check requests. The scan itself keeps working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'broken-link-checker' => array(
|
|
'matchers' => $wpmudev,
|
|
'note' => __( 'Removes the WordPress version, home URL, plugin and theme lists from the WPMU DEV Hub payloads, and the site URL from the User-Agent. The Hub connection keeps the domain as the account identifier.', 'robotstxt-telemetry' ),
|
|
),
|
|
'broken-link-checker-seo' => array(
|
|
'matchers' => array( array( 'host_contains' => 'aioseo', 'do' => 'strip_ua' ) ),
|
|
'note' => __( 'Removes the WordPress version and site URL from the API User-Agent. Link analysis keeps working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'burst-statistics' => array(
|
|
'matchers' => array( array( 'host' => 'api.burst-statistics.com', 'path' => '#/telemetry#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the aggregated statistics telemetry. License checks keep sending the site URL as the account identifier.', 'robotstxt-telemetry' ),
|
|
),
|
|
'call-now-button' => array(
|
|
'matchers' => array( array( 'host_contains' => 'callnowbutton', 'do' => 'strip_ua' ) ),
|
|
'note' => __( 'Removes the WordPress version, PHP version and site URL from the API User-Agent. All button features keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'cartflows' => array(
|
|
'matchers' => array( array( 'host_contains' => 'cartflows', 'path' => '#nps|survey#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the NPS survey requests that automatically attach the admin name and email. Template downloads keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'chaty' => array(
|
|
'matchers' => array( array( 'host_contains' => 'premioapps', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the feedback and support pings that send the site URL. The chat channels keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'click-to-chat-for-whatsapp' => array(
|
|
'matchers' => array( array( 'host_contains' => 'holithemes', 'path' => '#feedback|deactivat#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the deactivation feedback (WordPress version, PHP version, site URL, language, theme, plugin list, server software). Chat widgets keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'code-snippets' => array(
|
|
'matchers' => array( array( 'host_contains' => 'codesnippets', 'do' => 'strip_query', 'keys' => array( 'site_host' ) ) ),
|
|
'note' => __( 'Removes the site host from the cloud search queries. Cloud search keeps working with the account token.', 'robotstxt-telemetry' ),
|
|
),
|
|
'coming-soon' => array(
|
|
'matchers' => array( array( 'host_contains' => 'seedprod', 'do' => 'strip_body', 'keys' => array( 'wp_version' ) ) ),
|
|
'note' => __( 'Removes the WordPress version from the license requests. The license key, site URL (account identifier) and installed version (needed for updates) are kept.', 'robotstxt-telemetry' ),
|
|
),
|
|
'contact-form-7-honeypot' => array(
|
|
'matchers' => $freemius,
|
|
'note' => __( 'Blocks the Freemius analytics events (plugin and theme lists, versions, site URL, language). License activation keeps working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'cookie-law-info' => array(
|
|
'matchers' => array( array( 'host_contains' => 'webtoffe', 'path' => '#feedback#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the uninstall feedback (MySQL, WordPress and WooCommerce versions, locale, multisite flag). The cookie scanner keeps sending the scanned URLs because that is its function.', 'robotstxt-telemetry' ),
|
|
),
|
|
'cookie-notice' => array(
|
|
'matchers' => array( array( 'host' => 'hu-manity.co', 'path' => '#feedback|deactivat#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the deactivation feedback that sends the site URL. The notice and the account service keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'copy-delete-posts' => array(
|
|
'matchers' => array( array( 'host' => 'feedback.sellcodes.com', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the usage tracker (WordPress version, PHP version, server IP, MySQL version, locale, plugin list). Post duplication is fully local.', 'robotstxt-telemetry' ),
|
|
),
|
|
'creame-whatsapp-me' => array(
|
|
'matchers' => array( array( 'host_contains' => 'connectif', 'do' => 'strip_body', 'keys' => array( 'site', 'lang' ) ) ),
|
|
'note' => __( 'Removes the site URL and language from the newsletter subscribe. The admin-entered email is kept (it is an explicit subscription).', 'robotstxt-telemetry' ),
|
|
),
|
|
'custom-fonts' => array(
|
|
'matchers' => $bsf,
|
|
'note' => __( 'Blocks the BSF analytics report (site URL, WordPress/PHP/MySQL versions, user count, language, timezone, plugin list, server software). Font uploads are unaffected.', 'robotstxt-telemetry' ),
|
|
),
|
|
'disable-comments' => array(
|
|
'matchers' => array(
|
|
array( 'host' => 'send.wpinsight.com', 'do' => 'block' ),
|
|
array( 'host' => 'ip-api.com', 'do' => 'block' ),
|
|
),
|
|
'note' => __( 'Blocks the usage tracker and its country lookup (site URL, plugin slug, server IP). Comment disabling is fully local.', 'robotstxt-telemetry' ),
|
|
),
|
|
'easy-wp-smtp' => array(
|
|
'matchers' => array( array( 'host' => 'tools.keycdn.com', 'do' => 'strip_ua' ) ),
|
|
'note' => __( 'Removes the site URL from the geo-lookup User-Agent. Mail delivery keeps working with your mailer credentials only.', 'robotstxt-telemetry' ),
|
|
),
|
|
'elementor' => array(
|
|
'matchers' => array( array( 'host_contains' => 'elementor.com', 'path' => '#feedback#i', 'do' => 'strip_body', 'keys' => array( 'site_lang', 'api_version' ) ) ),
|
|
'note' => __( 'Removes the language and API version from the feedback surveys. The template library and the connect flow (site URL as account identifier) are untouched.', 'robotstxt-telemetry' ),
|
|
),
|
|
'elementskit-lite' => array(
|
|
'matchers' => array( array( 'host_contains' => 'wpmet', 'path' => '#unsubscribe#i', 'do' => 'strip_body', 'keys' => array( 'wp_version', 'php_version', 'site_url' ) ) ),
|
|
'note' => __( 'Removes the WordPress version, PHP version and site URL from the unsubscribe feedback. Widgets and modules are unaffected.', 'robotstxt-telemetry' ),
|
|
),
|
|
'enable-media-replace' => array(
|
|
'matchers' => array( array( 'host_contains' => 'shortpixel', 'do' => 'strip_body', 'keys' => array( 'DomainCheck', 'Info' ) ) ),
|
|
'note' => __( 'Removes the site URL and the WordPress/PHP version block from the ShortPixel key check. The API key alone is enough to validate the account.', 'robotstxt-telemetry' ),
|
|
),
|
|
'essential-addons-for-elementor-lite' => array(
|
|
'matchers' => array( array( 'host_contains' => 'wpdeveloper', 'path' => '#track#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the usage tracker (site URL, site name, WordPress version, language, PHP version, admin email). Elements and templates keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'ewww-image-optimizer' => array(
|
|
'matchers' => array( array( 'host' => 'stats.exactlywww.net', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the weekly check-in (plugin list, locale, WordPress version, OS, limits, image counts). Local and cloud optimization keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'extendify' => array(
|
|
'matchers' => array(
|
|
array( 'host_contains' => 'extendify', 'do' => 'strip_body', 'keys' => array( 'wpVersion', 'wpLanguage', 'title', 'siteProfile' ) ),
|
|
array( 'host_contains' => 'extendify', 'do' => 'strip_headers', 'headers' => array( 'referer' ) ),
|
|
),
|
|
'note' => __( 'Removes the WordPress version, language, site title, site profile and Referer header from the AI requests. The AI assistance keeps working with the prompt content only.', 'robotstxt-telemetry' ),
|
|
),
|
|
'fluentform' => array(
|
|
'matchers' => array( array( 'host_contains' => 'fluentforms', 'path' => '#track#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the tracker (WordPress version, PHP version, MySQL version, server software, plugin list, admin email, IP). Form integrations keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'fluent-smtp' => array(
|
|
'matchers' => array( array( 'host_contains' => 'fluentsmtp.com', 'path' => '#push|notify#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the opt-in ping and the failed-mail notifications (which include email metadata). Mail delivery keeps working with your mailer credentials only.', 'robotstxt-telemetry' ),
|
|
),
|
|
'formidable' => array(
|
|
'matchers' => array( array( 'host' => 'usage2.formidableforms.com', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the usage snapshot (UUID, WordPress/PHP/MySQL versions, OS, locale, plugin list, form counts) and the onboarding email collection. Forms keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'forminator' => array(
|
|
'matchers' => $wpmudev,
|
|
'note' => __( 'Removes the WordPress version, home URL, plugin and theme lists from the WPMU DEV Hub payloads, and the site URL from the User-Agent. The domain is kept as the account identifier.', 'robotstxt-telemetry' ),
|
|
),
|
|
'google-analytics-dashboard-for-wp' => array(
|
|
'matchers' => array( array( 'host_contains' => 'miusage', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the check-in (plugin list, locale, home URL). Your Google Analytics measurement keeps working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'google-analytics-for-wordpress' => array(
|
|
'matchers' => array( array( 'host_contains' => 'miusage', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the check-in (plugin list, locale, home URL). Your Google Analytics measurement keeps working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'google-site-kit' => array(
|
|
'matchers' => array( array( 'host_contains' => 'withgoogle', 'do' => 'strip_body', 'keys' => array( 'platform_version', 'php_version', 'user_count' ) ) ),
|
|
'note' => __( 'Removes the WordPress version, PHP version and user count from the Site Kit feature reports. Search Console, Analytics and AdSense integrations keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'google-sitemap-generator' => array(
|
|
'matchers' => array(
|
|
array( 'host' => 'ssl.google-analytics.com', 'do' => 'block' ),
|
|
array( 'host_contains' => 'auctollo', 'do' => 'block' ),
|
|
),
|
|
'note' => __( 'Blocks the Google Analytics usage ping and the beta-consent ping (WordPress version, PHP version, post count, email, domain, language). Search-engine pings keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'happy-elementor-addons' => array(
|
|
'matchers' => array( array( 'host' => 'api.appsero.com', 'path' => '#insights|stats#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the Appsero insights (site URL, PHP version, MySQL, server software, WordPress version). License and update checks keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'header-footer-elementor' => array(
|
|
'matchers' => $bsf,
|
|
'note' => __( 'Blocks the BSF analytics report (site URL, PHP/WordPress versions, network URL, plugin list). Header and footer builder keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'hostinger' => array(
|
|
'matchers' => array( array( 'host_contains' => 'hostinger.io', 'path' => '#events#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the event reporting that sends your domain. Hosting management actions keep working with your token.', 'robotstxt-telemetry' ),
|
|
),
|
|
'imagify' => array(
|
|
'matchers' => $mixpanel,
|
|
'note' => __( 'Blocks the Mixpanel telemetry events (which include the WordPress version). Image optimization keeps working with your API key.', 'robotstxt-telemetry' ),
|
|
),
|
|
'image-optimization' => array(
|
|
'matchers' => array( array( 'host_contains' => 'elementor.com', 'path' => '#notifications#i', 'do' => 'strip_body', 'keys' => array( 'site_lang' ) ) ),
|
|
'note' => __( 'Removes the language from the notifications requests. Image optimization and connect keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'instagram-feed' => array(
|
|
'matchers' => array(
|
|
array( 'host_contains' => 'smashballoon', 'path' => '#usage|checkin#i', 'do' => 'block' ),
|
|
array( 'host_contains' => 'sbswapi', 'path' => '#usage|checkin#i', 'do' => 'block' ),
|
|
),
|
|
'note' => __( 'Blocks the usage check-in (environment payload with a site-URL User-Agent). Feeds keep working with your access tokens.', 'robotstxt-telemetry' ),
|
|
),
|
|
'jeg-elementor-kit' => array(
|
|
'matchers' => array_merge(
|
|
$freemius,
|
|
array( array( 'host_contains' => 'jegtheme', 'path' => '#newsletter#i', 'do' => 'strip_body', 'keys' => array( 'domain' ) ) )
|
|
),
|
|
'note' => __( 'Blocks the Freemius analytics events and removes the domain from the newsletter subscribe. Templates and elements keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'kadence-blocks' => array(
|
|
'matchers' => array( array( 'path' => '#/telemetry#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the StellarWP telemetry reports. Blocks, AI features and the template library keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'mailchimp-for-woocommerce' => array(
|
|
'matchers' => array( array( 'host' => 'tower.vextras.com', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the support ping and wizard reporting (store name, domain, list data). Order and subscriber synchronization keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'mailpoet' => array(
|
|
'matchers' => array( array( 'host' => 'public-api.wordpress.com', 'path' => '#/tracks/#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the Tracks analytics worker. Newsletter sending and subscribers keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'meta-box' => array(
|
|
'matchers' => array(
|
|
array( 'host' => 'metabox.io', 'do' => 'strip_query', 'keys' => array( 'wp_version', 'php_version', 'language' ) ),
|
|
),
|
|
'note' => __( 'Removes the WordPress version, PHP version and language from the updater requests. The license key and site URL (account identifier) are kept.', 'robotstxt-telemetry' ),
|
|
),
|
|
'metform' => array(
|
|
'matchers' => array( array( 'host' => 'api.wpmet.com', 'path' => '#/public/#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the onboarding data sender (plugin and theme lists). Form integrations keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'nextgen-gallery' => array(
|
|
'matchers' => array( array( 'host' => 'evusage.enviragallery.com', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the usage tracking (PHP version, WordPress version, server software, home URL, theme, admin email, settings). Galleries keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'ninja-forms' => array(
|
|
'matchers' => array( array( 'host_contains' => 'ninjaforms', 'do' => 'strip_body', 'keys' => array( 'site_data', 'nf_be_data' ) ) ),
|
|
'note' => __( 'Removes the site data block (site URL and server IP) from the dispatcher requests. Forms and add-on services keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'ocean-extra' => array(
|
|
'matchers' => $freemius,
|
|
'note' => __( 'Blocks the Freemius analytics events (plugin and theme lists, versions, site URL, language). Demos and license activation keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'otter-blocks' => array(
|
|
'matchers' => $isle,
|
|
'note' => __( 'Blocks the Themeisle tracker and SDK logger (theme, plugin list, WordPress version). Blocks keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'password-protected' => array(
|
|
'matchers' => $freemius,
|
|
'note' => __( 'Blocks the Freemius analytics events (plugin and theme lists, versions, site URL, language). Password protection is fully local.', 'robotstxt-telemetry' ),
|
|
),
|
|
'pdf-embedder' => array(
|
|
'matchers' => array( array( 'host_contains' => 'wpauthusagetracking', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the weekly usage report (home URL, PHP/WordPress/MySQL versions, server software, multisite, plugin list, theme, locale, license, settings). PDF embedding keeps working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'pojo-accessibility' => array(
|
|
'matchers' => array( array( 'host_contains' => 'elementor.com', 'path' => '#notifications#i', 'do' => 'strip_body', 'keys' => array( 'site_lang' ) ) ),
|
|
'note' => __( 'Removes the language from the notifications requests. All accessibility widgets keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'polylang' => array(
|
|
'matchers' => array(
|
|
array( 'host_contains' => 'polylang', 'do' => 'strip_body', 'keys' => array( 'php_version', 'language', 'locale' ) ),
|
|
array( 'host_contains' => 'polylang', 'do' => 'strip_query', 'keys' => array( 'php_version', 'language', 'locale' ) ),
|
|
),
|
|
'note' => __( 'Removes the PHP version and language from the Pro updater requests. The WordPress version, license and site URL (account identifier) are kept so updates keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'popup-maker' => array(
|
|
'matchers' => array(
|
|
array( 'host_contains' => 'wppopupmaker', 'path' => '#telemetry#i', 'do' => 'block' ),
|
|
array( 'host_contains' => 'wppopupmaker', 'do' => 'strip_body', 'keys' => array( 'phpversion', 'php_version' ) ),
|
|
array( 'host' => 'ssl.google-analytics.com', 'do' => 'block' ),
|
|
),
|
|
'note' => __( 'Blocks the telemetry check-in and the Google Analytics usage events, and removes the PHP version from the extension updater requests. Popups keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'post-smtp' => array(
|
|
'matchers' => array_merge(
|
|
$freemius,
|
|
array( array( 'host_contains' => 'postmansmtp', 'do' => 'strip_body', 'keys' => array( 'site_url' ) ) )
|
|
),
|
|
'note' => __( 'Blocks the Freemius analytics events and removes the site URL from the notification requests. Mail delivery keeps working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'premium-addons-for-elementor' => array(
|
|
'matchers' => array(
|
|
array( 'host' => 'feedbackpa.leap13.com', 'do' => 'block' ),
|
|
array( 'host_contains' => 'premiumaddons', 'path' => '#install|uninstall#i', 'do' => 'block' ),
|
|
),
|
|
'note' => __( 'Blocks the feedback and install pings (locale, theme and plugin lists, site domain, memory limit, execution time, used widgets). All addons keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'really-simple-ssl' => array(
|
|
'matchers' => array( array( 'host_contains' => 'reallysimplessl', 'path' => '#mailing#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the mailing-list subscribe (email, license, site URL). The vulnerability scan keeps sending your installed versions because checking them is its function.', 'robotstxt-telemetry' ),
|
|
),
|
|
'redux-framework' => array(
|
|
'matchers' => array( array( 'host' => 'redux.io', 'do' => 'strip_ua' ) ),
|
|
'note' => __( 'Removes the theme name from the font-converter User-Agent. Font conversion keeps working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'royal-elementor-addons' => array(
|
|
'matchers' => array_merge(
|
|
$freemius,
|
|
array( array( 'host' => 'reastats.kinsta.cloud', 'do' => 'block' ) )
|
|
),
|
|
'note' => __( 'Blocks the Freemius analytics events and the usage events server. Templates and widgets keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'seo-by-rank-math' => array(
|
|
'matchers' => $mixpanel,
|
|
'note' => __( 'Blocks the Mixpanel telemetry. Content AI and module updates keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'sg-cachepress' => array(
|
|
'matchers' => array( array( 'host' => 'wpreports.sgvps.net', 'path' => '#collect_plugin_data#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the plugin-data telemetry (home URL, admin email, PHP version and limits, OS, WordPress version, user count, MySQL version, server software). Caching keeps working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'sg-security' => array(
|
|
'matchers' => array( array( 'host' => 'wpreports.sgvps.net', 'path' => '#collect_plugin_data#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the plugin-data telemetry (home URL, admin email, PHP and WordPress versions, user count, MySQL version, server software). Security hardening keeps working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'shortcodes-ultimate' => array(
|
|
'matchers' => $freemius,
|
|
'note' => __( 'Blocks the Freemius analytics events (plugin and theme lists, versions, site URL, language). Shortcodes are fully local.', 'robotstxt-telemetry' ),
|
|
),
|
|
'sticky-header-effects-for-elementor' => array(
|
|
'matchers' => array( array( 'host' => 'api.posimyth.com', 'path' => '#/track#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the Posimyth tracker (site URL, PHP version, plugin slugs, theme, install time). Header effects keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'sucuri-scanner' => array(
|
|
'matchers' => array( array( 'host' => 'wp-plugin.sucuri.net', 'do' => 'strip_query', 'keys' => array( 'php', 'php_version' ) ) ),
|
|
'note' => __( 'Removes the PHP version from the API lookups. The WordPress version and the plugin/theme versions are kept because the integrity checks are the service itself.', 'robotstxt-telemetry' ),
|
|
),
|
|
'sureforms' => array(
|
|
'matchers' => $bsf,
|
|
'note' => __( 'Blocks the BSF analytics report (domain, PHP OS, server software, MySQL/PHP versions, WordPress version). Forms and the AI builder keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'surerank' => array(
|
|
'matchers' => $bsf,
|
|
'note' => __( 'Blocks the BSF analytics report (domain, PHP OS, server software, MySQL/PHP versions, WordPress version). SEO analysis keeps working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'tablepress' => array(
|
|
'matchers' => $freemius,
|
|
'note' => __( 'Blocks the Freemius analytics events (plugin and theme lists, versions, site URL, language). Tables are fully local.', 'robotstxt-telemetry' ),
|
|
),
|
|
'templately' => array(
|
|
'matchers' => array( array( 'host_contains' => 'templately', 'do' => 'strip_headers', 'headers' => array( 'x-templately-ip', 'x-templately-url', 'x-templately-version' ) ) ),
|
|
'note' => __( 'Removes the server IP, site URL and version headers from every API request. Template downloads keep working with your token.', 'robotstxt-telemetry' ),
|
|
),
|
|
'the-events-calendar' => array(
|
|
'matchers' => array(
|
|
array( 'path' => '#/telemetry#i', 'do' => 'block' ),
|
|
array( 'host_contains' => 'tri.be', 'do' => 'strip_body', 'keys' => array( 'wp_version', 'phpversion', 'php_version', 'user_count', 'users' ) ),
|
|
),
|
|
'note' => __( 'Blocks the StellarWP telemetry and removes the WordPress version, PHP version and user counts from the license/update validation. The domain is kept as the account identifier.', 'robotstxt-telemetry' ),
|
|
),
|
|
'translatepress-multilingual' => array(
|
|
'matchers' => array( array( 'host_contains' => 'translatepress', 'path' => '#sync#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the weekly sync and the opt-in subscribe (home URL, email, name, plugin list, WordPress version, locale, PHP version). Translations keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'unlimited-elements-for-elementor' => array(
|
|
'matchers' => $freemius,
|
|
'note' => __( 'Blocks the Freemius analytics events (plugin and theme lists, versions, site URL, language). Widgets keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'updraftplus' => array(
|
|
'matchers' => array( array( 'host' => 'ipinfo.io', 'do' => 'strip_headers', 'headers' => array( 'referer' ) ) ),
|
|
'note' => __( 'Removes the Referer header (your network site URL) from the IP info lookups. Backups go to the destinations you configured.', 'robotstxt-telemetry' ),
|
|
),
|
|
'w3-total-cache' => array(
|
|
'matchers' => array( array( 'host' => 'api.w3-edge.com', 'path' => '#survey#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the survey requests that include the home URL and email. CDN and cache configuration keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'woo-cart-abandonment-recovery' => array(
|
|
'matchers' => $bsf,
|
|
'note' => __( 'Blocks the BSF analytics report (WordPress version, PHP version, locale, site URL). Cart tracking and webhooks keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'woo-checkout-field-editor-pro' => array(
|
|
'matchers' => array( array( 'host' => 'feedback.themehigh.in', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the feedback requests (server software, PHP version, MySQL version, WordPress and WooCommerce versions, locale, multisite). Checkout fields keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'woocommerce' => array(
|
|
'matchers' => array( array( 'host' => 'pixel.wp.com', 'path' => '#\.gif#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the WooCommerce.com Tracks pixel (usage analytics). Store functionality and woocommerce.com connections keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'woocommerce-payments' => array(
|
|
'matchers' => array( array( 'host' => 'pixel.wp.com', 'path' => '#\.gif#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the WooPay tracker pixel. Payments keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'woo-variation-swatches' => array(
|
|
'matchers' => array( array( 'host_contains' => 'getwooplugins', 'path' => '#feedback#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the deactivation feedback (PHP version, WordPress version, server info, plugin list, theme, settings). Swatches keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'wp-file-manager' => array(
|
|
'matchers' => array(
|
|
array( 'host' => 'filemanagerpro.io', 'do' => 'strip_body', 'keys' => array( 'SITE_URL', 'PHP_version', 'wp_version', 'HTTP_USER_AGENT', 'PHP_ini_max_execution_time', 'PHP_ini_memory_limit', 'PHP_ini_post_max_size', 'PHP_ini_upload_max_filesize' ) ),
|
|
),
|
|
'note' => __( 'Removes the site URL, PHP and WordPress versions, user agent and PHP limits from the plugin-server requests. File management keeps working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'wpforms-lite' => array(
|
|
'matchers' => array( array( 'host' => 'wpformsusage.com', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the usage tracking (home URL, PHP version, WordPress version, MySQL version, server, form and entry counts). Forms keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'wp-headers-and-footers' => array(
|
|
'matchers' => array( array( 'host' => 'app.telemetry.wpbrigade.com', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the WPBrigade telemetry (PHP version, WordPress version, server, MySQL version, locale, limits). Header and footer scripts keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'wp-mail-smtp' => array(
|
|
'matchers' => array( array( 'host' => 'wpmailsmtpusage.com', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the usage tracking (MySQL version, server software, locale, theme, site count, mailer configuration). Mail delivery keeps working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'wp-maintenance-mode' => array(
|
|
'matchers' => $isle,
|
|
'note' => __( 'Blocks the Themeisle SDK logger (theme, plugin list, WordPress version). The maintenance page is fully local.', 'robotstxt-telemetry' ),
|
|
),
|
|
'wp-optimize' => array(
|
|
'matchers' => array( array( 'host_contains' => 'resmush.it', 'do' => 'strip_ua' ) ),
|
|
'note' => __( 'Removes the WordPress version from the re-smush.it User-Agent. Image optimization keeps working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'wp-reset' => array(
|
|
'matchers' => array( array( 'host_contains' => 'wp-reset', 'do' => 'strip_query', 'keys' => array( 'wp_version' ) ) ),
|
|
'note' => __( 'Removes the WordPress version from the licensing requests. The license key and site URL (account identifier) are kept.', 'robotstxt-telemetry' ),
|
|
),
|
|
'wp-reviews-plugin-for-google' => array(
|
|
'matchers' => array( array( 'host_contains' => 'trustindex', 'do' => 'strip_body', 'keys' => array( 'wp_info' ) ) ),
|
|
'note' => __( 'Removes the WordPress environment block (domain, theme and version, full theme and plugin lists) from the connect requests. Review widgets keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'wp-seopress' => array(
|
|
'matchers' => array( array( 'host_contains' => 'seopress', 'do' => 'strip_headers', 'headers' => array( 'X-SEOPress-Locale', 'X-SEOPress-Version', 'X-SEOPress-Pro-Active' ) ) ),
|
|
'note' => __( 'Removes the locale and version headers from the promotions requests. SEO features and instant indexing keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'wp-smushit' => array(
|
|
'matchers' => $wpmudev,
|
|
'note' => __( 'Removes the WordPress version, home URL, plugin and theme lists from the WPMU DEV Hub payloads, and the site URL from the User-Agent. Image compression keeps working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'wp-statistics' => array(
|
|
'matchers' => array( array( 'host_contains' => 'wp-statistics', 'path' => '#usage#i', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the anonymized usage reports (database version and type, aggregate counts). Statistics collection stays local.', 'robotstxt-telemetry' ),
|
|
),
|
|
'wp-whatsapp-chat' => array(
|
|
'matchers' => array( array( 'host' => 'feedback.quadlayers.com', 'do' => 'block' ) ),
|
|
'note' => __( 'Blocks the deactivation feedback (PHP/MySQL/WordPress versions, site URL, theme, plugin list, email). Chat widgets keep working.', 'robotstxt-telemetry' ),
|
|
),
|
|
'yith-woocommerce-wishlist' => array(
|
|
'matchers' => array( array( 'host_contains' => 'yithemes', 'do' => 'strip_query', 'keys' => array( 'lang' ) ) ),
|
|
'note' => __( 'Removes the language from the pricing lookups. The store currency is kept because prices depend on it.', 'robotstxt-telemetry' ),
|
|
),
|
|
);
|
|
|
|
self::$cache = $profiles;
|
|
|
|
return $profiles;
|
|
}
|
|
|
|
/**
|
|
* Plugin versions each Safe profile was verified against.
|
|
*
|
|
* @return array Slug => version.
|
|
*/
|
|
public static function tested_versions() {
|
|
return array(
|
|
'ad-inserter' => '2.8.18',
|
|
'all-in-one-seo-pack' => '5.0.0.1',
|
|
'all-in-one-wp-migration' => '7.109',
|
|
'antispam-bee' => '2.11.12',
|
|
'astra-sites' => '4.7.4',
|
|
'autoptimize' => '3.1.15.1',
|
|
'backwpup' => '5.7.5',
|
|
'better-wp-security' => '10.0.3',
|
|
'breeze' => '2.5.13',
|
|
'broken-link-checker' => '2.4.13',
|
|
'broken-link-checker-seo' => '1.3.0',
|
|
'burst-statistics' => '3.6.2',
|
|
'call-now-button' => '2.0.2',
|
|
'cartflows' => '3.1.4',
|
|
'chaty' => '3.6.0',
|
|
'click-to-chat-for-whatsapp' => '4.43',
|
|
'code-snippets' => '3.9.6',
|
|
'coming-soon' => '6.20.8',
|
|
'contact-form-7-honeypot' => '3.7.2',
|
|
'cookie-law-info' => '3.5.4',
|
|
'cookie-notice' => '3.1.6',
|
|
'copy-delete-posts' => '1.5.6',
|
|
'creame-whatsapp-me' => '6.3.2',
|
|
'custom-fonts' => '2.1.17',
|
|
'disable-comments' => '2.8.0',
|
|
'easy-wp-smtp' => '2.15.1',
|
|
'elementor' => '4.2.2',
|
|
'elementskit-lite' => '4.0.1',
|
|
'enable-media-replace' => '4.2.2',
|
|
'essential-addons-for-elementor-lite' => '6.7.3',
|
|
'ewww-image-optimizer' => '8.7.5',
|
|
'extendify' => '3.1.4',
|
|
'fluent-smtp' => '2.3.1',
|
|
'fluentform' => '6.2.12',
|
|
'formidable' => '6.34',
|
|
'forminator' => '1.57.0',
|
|
'google-analytics-dashboard-for-wp' => '10.1.2',
|
|
'google-analytics-for-wordpress' => '11.1.2',
|
|
'google-site-kit' => '1.185.0',
|
|
'google-sitemap-generator' => '4.1.24',
|
|
'happy-elementor-addons' => '3.23.1',
|
|
'header-footer-elementor' => '2.9.3',
|
|
'hostinger' => '3.0.75',
|
|
'image-optimization' => '1.7.6',
|
|
'imagify' => '2.3.2',
|
|
'instagram-feed' => '6.12.0',
|
|
'jeg-elementor-kit' => '3.2.13',
|
|
'kadence-blocks' => '3.7.9.1',
|
|
'mailchimp-for-woocommerce' => '6.2',
|
|
'mailpoet' => '5.36.0',
|
|
'meta-box' => '5.14.1',
|
|
'metform' => '4.2.0',
|
|
'nextgen-gallery' => '4.3.0',
|
|
'ninja-forms' => '3.15.0',
|
|
'ocean-extra' => '2.5.9',
|
|
'otter-blocks' => '3.2.2',
|
|
'password-protected' => '2.8.4',
|
|
'pdf-embedder' => '5.0.2',
|
|
'pojo-accessibility' => '4.1.3',
|
|
'polylang' => '3.8.7',
|
|
'popup-maker' => '1.24.0',
|
|
'post-smtp' => '3.9.5',
|
|
'premium-addons-for-elementor' => '4.11.98',
|
|
'really-simple-ssl' => '9.7.0',
|
|
'redux-framework' => '4.5.13',
|
|
'royal-elementor-addons' => '1.7.1066',
|
|
'seo-by-rank-math' => '1.0.276',
|
|
'sg-cachepress' => '7.8.1',
|
|
'sg-security' => '1.6.5',
|
|
'shortcodes-ultimate' => '7.8.4',
|
|
'sticky-header-effects-for-elementor' => '2.2.1',
|
|
'sucuri-scanner' => '2.7.4',
|
|
'sureforms' => '2.12.3',
|
|
'surerank' => '1.9.3',
|
|
'tablepress' => '3.3.3',
|
|
'templately' => '3.7.2',
|
|
'the-events-calendar' => '6.17.2',
|
|
'translatepress-multilingual' => '3.3.3',
|
|
'unlimited-elements-for-elementor' => '2.0.16',
|
|
'updraftplus' => '1.26.6',
|
|
'w3-total-cache' => '2.10.5',
|
|
'woo-cart-abandonment-recovery' => '2.1.3',
|
|
'woo-checkout-field-editor-pro' => '2.1.9',
|
|
'woo-variation-swatches' => '2.3.0',
|
|
'woocommerce' => '11.0.1',
|
|
'woocommerce-payments' => '11.0.0',
|
|
'wp-file-manager' => '8.0.4',
|
|
'wp-headers-and-footers' => '3.1.5',
|
|
'wp-mail-smtp' => '4.9.0',
|
|
'wp-maintenance-mode' => '2.6.23',
|
|
'wp-optimize' => '4.6.1',
|
|
'wp-reset' => '2.08',
|
|
'wp-reviews-plugin-for-google' => '13.3.2',
|
|
'wp-seopress' => '10.1',
|
|
'wp-smushit' => '4.3.0',
|
|
'wp-statistics' => '14.16.10',
|
|
'wp-whatsapp-chat' => '8.6.1',
|
|
'wpforms-lite' => '2.0.0.5',
|
|
'yith-woocommerce-wishlist' => '4.17.0',
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Freemius SDK analytics matchers (license and updates untouched).
|
|
*
|
|
* @return array
|
|
*/
|
|
private static function freemius_matchers() {
|
|
return array( array( 'host' => 'api.freemius.com', 'path' => '#/events\.json#i', 'do' => 'block' ) );
|
|
}
|
|
|
|
/**
|
|
* Brainstorm Force analytics matchers.
|
|
*
|
|
* @return array
|
|
*/
|
|
private static function bsf_matchers() {
|
|
return array( array( 'host' => 'store.brainstormforce.com', 'path' => '#usage-tracking#i', 'do' => 'block' ) );
|
|
}
|
|
|
|
/**
|
|
* Themeisle tracker and logger matchers.
|
|
*
|
|
* @return array
|
|
*/
|
|
private static function themeisle_matchers() {
|
|
return array( array( 'host' => 'api.themeisle.com', 'path' => '#/tracking/#i', 'do' => 'block' ) );
|
|
}
|
|
|
|
/**
|
|
* Mixpanel telemetry matchers.
|
|
*
|
|
* @return array
|
|
*/
|
|
private static function mixpanel_matchers() {
|
|
return array( array( 'host' => 'api.mixpanel.com', 'do' => 'block', 'mock' => '1' ) );
|
|
}
|
|
|
|
/**
|
|
* WPMU DEV Hub matchers (domain kept as account identifier).
|
|
*
|
|
* @return array
|
|
*/
|
|
private static function wpmudev_matchers() {
|
|
return array(
|
|
array(
|
|
'host_contains' => 'wpmudev',
|
|
'do' => 'strip_body',
|
|
'keys' => array( 'wp_version', 'home_url', 'plugins', 'themes' ),
|
|
),
|
|
array( 'host_contains' => 'wpmudev', 'do' => 'strip_ua' ),
|
|
);
|
|
}
|
|
}
|
|
}
|