#116 "Persistent identifier of the browser tab" protection when set to "Strict" makes reCAPTCHA load infinitely
Closed: Fixed by polcak. Opened by gersonzao.

Summary

Title

Setup

Title

Pages affected: Anything with reCAPTCHA, example is https://www.google.com/recaptcha/api2/demo
JShelter Version: 0.13

Popup information (open JShelter popup on affected pages:

  1. Navigate to a page that you are having trouble with: [URL]
  2. Click on the JShelter badge icon.
  3. Is JavaScript Shield active? Yes
  4. Is Network Boundary Shield active? No
  5. Is Fingerprint Detector active? No
  6. What fingerprint likelihood does Fingerprint Detector report? N/A
  7. Did Fingerprint Detector produce any notifications, if so, what was the notification? No
  8. Click on the Modify button next to the JavaScript Shield label.
  9. What is the highlighted level button text? Custom (only the problematic protection is enabled)
  10. Click on the Detail tweaks of JS shield for this site button.
  11. What wrappers were triggered by the page, list them below:
    None

[Optional:]

OS: Windows 10 19041
Browser: Firefox 102.13.0esr
Other extensions that might affect JShelter behaviour:

How to reproduce

  1. Open a page with reCAPTCHA
  2. Click the reCAPTCHA checkbox
  3. Wait

Expected result

Check would proceed normally

Actual result

Throbber spins infinitely

Reproducibility

Firefox Nightly 117

Workarounds

None

Have you tried other steps to solve the issue?

No

Additional information / notes

None


Hello,

Thank you for reporting this issue. I have a question though:

Was "Persistent identifier of the browser tab" inactive by default on your setup and you activated that by yourself?

(The protection is by default inactive in Firefox but active in Chrome.)

Anyway I will also use this message for notes for myself:

  • After a while after clicking the box, onUrlChanged fires on a window that has the window.name set to a string of 14 characters, prefix "c-" or "a- and 12 randomly looking characters that change after a reload of the main window.
  • previousUrl in the onUrlChanged listener is undefined, meaning that the browser is creating a new window.
  • So the reCaptcha script managed to set window.name before that window navigated to the initial page. The script might have propagated that same string in the URL or in a different way.
  • Also, I guess that Firefox does not have anything special for reCaptcha so Firefox likely behaves the same.
  • Hence, clearing window.name when previousUrl is undefined does not make sense and I will create a patch for that. This will be release as 0.15.2.

Fix released in 0.15.2

Metadata Update from @polcak:
- Issue close_status updated to: Fixed
- Issue status updated to: Closed (was: Open)

The fix works, thanks!

Metadata