ClearURLs / Addon

ClearURLs is an add-on based on the new WebExtensions technology and will automatically remove tracking elements from URLs to help protect your privacy.
http://docs.clearurls.xyz
GNU Lesser General Public License v3.0
4.02k stars 110 forks source link

Infinite redirect loops #343

Open crpmax opened 8 months ago

crpmax commented 8 months ago

Hello,

I think the essence of the problem is the same as https://github.com/ClearURLs/Addon/issues/318 and https://github.com/ClearURLs/Addon/issues/295

I use Firefox (Developer edition) and ClearURLs 1.26.1.

I noticed that in some circumstances, on some sites, an infinte redirect loop will happen. When I turn off the extension, the page loads fine.

Examples

Aliexpress

The first example is this Aliexpress link (you must have cookies cleared or open it in an anonymous window). https://www.aliexpress.us/item/3256804772697909.html?gatewayAdapt=glo2usa4itemAdapt

With the extension enabled, it loops like this:

https://www.aliexpress.us/item/3256804772697909.html?gatewayAdapt=glo2usa4itemAdapt
https://login.aliexpress.com/sync_cookie_read.htm?xman_goto=https://www.aliexpress.us/item/3256804772697909.html?gatewayAdapt=glo2usa4itemAdapt
https://login.aliexpress.us/sync_cookie_write.htm?acs_random_token=fc727d114bac447797ccc6eb4fe10365&xman_goto=https://www.aliexpress.us/item/3256804772697909.html?gatewayAdapt=glo2usa4itemAdapt
https://www.aliexpress.us/item/3256804772697909.html?gatewayAdapt=glo2usa4itemAdapt

This will end with a browser NS_ERROR_REDIRECT_LOOP error.

With the extension disabled, it loads the page fine, like this:

https://www.aliexpress.us/item/3256804772697909.html?gatewayAdapt=glo2usa4itemAdapt
https://login.aliexpress.com/sync_cookie_read.htm?xman_goto=https://www.aliexpress.us/item/3256804772697909.html?gatewayAdapt=glo2usa4itemAdapt
https://login.aliexpress.us/sync_cookie_write.htm?acs_random_token=fc727d114bac447797ccc6eb4fe10365&xman_goto=https://www.aliexpress.us/item/3256804772697909.html?gatewayAdapt=glo2usa4itemAdapt&_ga=GA1.1.24aa559a-9c91-4671-96b2-516913520946.1703841605313
https://www.aliexpress.us/item/3256804772697909.html?gatewayAdapt=glo2usa4itemAdapt
https://www.aliexpress.us/item/1005004959012661.html?gatewayAdapt=4itemAdapt

The difference I see is the _ga parameter. Without it, it seems like Aliexpress is not redirecting properly.

Google Trends

The next example is Google Trends. When I search for a term and I try to select the country or time span, the URL in the URL bar will start changing back and forth rapidly. It loops between these two URLs:

https://trends.google.com/trends/explore?date=now%201-d&q=php
https://trends.google.com/trends/explore?date=now+1-d&q=php

The difference is that it is not a full redirect, but it only changes the URL in the URL bar. It also looks like it changes between a space or a plus symbol instead of a space. So it does not end with NS_ERROR_REDIRECT_LOOP, but it will loop infinitely. When I disable the extension, the loop stops.

Solution?

I think the solution is not to manually whitelist sites with the problem, but to make the extension detect the redirect loop and whitelist the whole site automatically. It looks like Firefox shows an NS_ERROR_REDIRECT_LOOP error after 16 redirects. So maybye try to count the redirects and on 13 redirects, for example, add the site to the whitelist? Or try to detect the NS_ERROR_REDIRECT_LOOP error, add the site to the whitelist, and refresh the page automatically? With the Google Trends problem, count changes to the url instead of redirects?

Thank you.

iznawh commented 7 months ago

yea i am also having this problem with aliexpress as well, a whitelist would be great

KZNcode commented 6 months ago

same problem.

evgfilim1 commented 1 month ago

Google Trends

The next example is Google Trends. When I search for a term and I try to select the country or time span, the URL in the URL bar will start changing back and forth rapidly. It loops between these two URLs:

https://trends.google.com/trends/explore?date=now%201-d&q=php
https://trends.google.com/trends/explore?date=now+1-d&q=php

The difference is that it is not a full redirect, but it only changes the URL in the URL bar. It also looks like it changes between a space or a plus symbol instead of a space. So it does not end with NS_ERROR_REDIRECT_LOOP, but it will loop infinitely. When I disable the extension, the loop stops.

I have a similar problem but with local JetBrains YouTrack instance. The extension decodes %-encoded parts, but the browser (Firefox) seems to encode them back.