| 50 | import java.util.regex.Pattern; |
| 51 | |
| 52 | public class UriHelper { |
| 53 | // https://publicsuffix.org/ |
| 54 | private static final HashSet<String> suffixList = new HashSet<>(); |
| 55 | |
| 56 | // https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat |
| 57 | private static final String SUFFIX_LIST_NAME = "public_suffix_list.dat"; |
| 58 | |
| 59 | // https://github.com/svenjacobs/leon |
| 60 | // https://github.com/newhouse/url-tracking-stripper |
| 61 | // https://maxchadwick.xyz/tracking-query-params-registry/ |
| 62 | private static final List<String> PARANOID_QUERY = Collections.unmodifiableList(Arrays.asList( |
| 63 | // https://en.wikipedia.org/wiki/UTM_parameters |
| 64 | "awt_a", // AWeber |
| 65 | "awt_l", // AWeber |
| 66 | "awt_m", // AWeber |
| 67 | |
| 68 | "icid", // Adobe |
| 69 | "ef_id", // https://experienceleague.adobe.com/docs/advertising-cloud/integrations/analytics/mc/mc-ids.html |
| 70 | "_ga", // Google Analytics |
| 71 | "gclid", // Google |
| 72 | "gclsrc", // Google ads |
| 73 | "dclid", // DoubleClick (Google) |
| 74 | "fbclid", // Facebook |
| 75 | "igshid", // Instagram |
| 76 | "msclkid", // https://help.ads.microsoft.com/apex/index/3/en/60000 |
| 77 | |
| 78 | "mc_cid", // MailChimp |
| 79 | "mc_eid", // MailChimp |
| 80 | |
| 81 | "zanpid", // Zanox (Awin) |
| 82 | |
| 83 | "kclickid", // https://support.freespee.com/hc/en-us/articles/202577831-Kenshoo-integration |
| 84 | |
| 85 | "oly_anon_id", "oly_enc_id", // https://training.omeda.com/knowledge-base/olytics-product-outline/ |
| 86 | "_openstat", // https://yandex.com/support/direct/statistics/url-tags.html |
| 87 | "vero_conv", "vero_id", // https://help.getvero.com/cloud/articles/what-is-vero_id/ |
| 88 | "wickedid", // https://help.wickedreports.com/how-to-manually-tag-a-facebook-ad-with-wickedid |
| 89 | "yclid", // https://ads-help.yahoo.co.jp/yahooads/ss/articledetail?lan=en&aid=20442 |
| 90 | "__s", // https://ads-help.yahoo.co.jp/yahooads/ss/articledetail?lan=en&aid=20442 |
| 91 | "guccounter", "guce_referrer", "guce_referrer_sig", // Yahoo |
| 92 | "rb_clickid", // Russian |
| 93 | "s_cid", // https://help.goacoustic.com/hc/en-us/articles/360043311613-Track-lead-sources |
| 94 | "ml_subscriber", "ml_subscriber_hash", // https://www.mailerlite.com/help/how-to-integrate-your-forms-to-a-wix-website |
| 95 | "twclid", // https://business.twitter.com/en/blog/performance-advertising-on-twitter.html |
| 96 | "gbraid", "wbraid", // https://support.google.com/google-ads/answer/10417364 |
| 97 | "_hsenc", "__hssc", "__hstc", "__hsfp", "hsCtaTracking" // https://knowledge.hubspot.com/reports/what-cookies-does-hubspot-set-in-a-visitor-s-browser |
| 98 | )); |
| 99 | |
| 100 | // https://github.com/snarfed/granary/blob/master/granary/facebook.py#L1789 |
| 101 | |
| 102 | private static final List<String> FACEBOOK_WHITELIST_PATH = Collections.unmodifiableList(Arrays.asList( |
| 103 | "/nd/", "/n/", "/story.php" |
| 104 | )); |
| 105 | |
| 106 | private static final List<String> FACEBOOK_WHITELIST_QUERY = Collections.unmodifiableList(Arrays.asList( |
| 107 | "story_fbid", "fbid", "id", "comment_id" |
| 108 | )); |
| 109 |
nothing calls this directly
no outgoing calls
no test coverage detected