No Code Attached Yet Information Required
avatar macstalker
macstalker
14 Sep 2020

if you spend more then 2 minutes on the account registration form (might be any other form which utilizes Invisible reCAPTCHA plugin) then on submitting the form you get an Error: "timeout-or-duplicate"
If you click one more time on Submit button that form should be submitted successfully.

This happens due to the captcha token is only valid for 2 minutes after execute is called as stated in the docs: https://developers.google.com/recaptcha/docs/v3

Note: reCAPTCHA tokens expire after two minutes. If you're protecting an action with reCAPTCHA, make sure to call execute when the user takes the action.

Another possible solution: set an interval that calls the set token function, so it is refreshed every 2 minutes.

screen shot 2020-09-14 at 23 13 06

avatar macstalker macstalker - open - 14 Sep 2020
avatar joomla-cms-bot joomla-cms-bot - labeled - 14 Sep 2020
avatar jiweigert
jiweigert - comment - 15 Sep 2020

Variant of existing solution but extending it with the display of a countdown timer,
so the user get informed of the time limit of the actual InvisibleReCaptcha-Token.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/30644.

avatar richard67
richard67 - comment - 15 Sep 2020

Variant of existing solution but extending it with the display of a countdown timer,
so the user get informed of the time limit of the actual InvisibleReCaptcha-Token.

I've never seen a website doing that for any kind of Google Captcha.

avatar jiweigert
jiweigert - comment - 15 Sep 2020

Variant of existing solution but extending it with the display of a countdown timer,
so the user get informed of the time limit of the actual InvisibleReCaptcha-Token.

I've never seen a website doing that for any kind of Google Captcha.

Not for Google Captcha, but for example on online banking sites (germany), which have a max session-timout of 5-10 min,
because of security concerns, that the session is terminated on idle.

Also there is a countdown timer / visualisation in Google Authenticator to inform the user about the time left the presented code is valid.

The drawback of your second solution, to request every 2 min a new token, would may result in a runout of free API-requests,
if someone decide to DOS the registering process by spawning lots of sessions and force the plugin to request tokens for every opened registering session every two minutes...

avatar richard67
richard67 - comment - 15 Sep 2020

Not for Google Captcha, but for example on online banking sites (germany), which have a max session-timout of 5-10 min,
because of security concerns, that the session is terminated on idle.

Also there is a countdown timer / visualisation in Google Authenticator to inform the user about the time left the presented code is valid.

A Captcha is not an authenticator and not a replacement for an authenticator and shall not be abused as an authenticator, so you compare apples with pears.

avatar jiweigert
jiweigert - comment - 16 Sep 2020

Richard Fath

A Captcha is not an authenticator and not a replacement for an
authenticator and shall not be abused as an authenticator, so you compare
apples with pears.

Where did I say that actually?
The problem is that the token for invRecaptcha has a lifespan of 2 minutes.
The user isn't aware of that and may spend more time on fill out the form.

One suggestion is from me a visible countdown to indicate how much time is
left.
A minimal solution is a simple information (static text) and suppressing
the message about an invalid token.
When the user filled out the form and send it, the process silently renew
the token if possible and proceed on.

But permanently requesting a new token every 2 min untill the form may be
send, is a crude solution, with previous mentioned, possible side-effects.

avatar richard67
richard67 - comment - 16 Sep 2020

Where did I say that actually?

You have mentioned Google Authenticator and online banking sites as examples for a solution which might make sense for an authenticator but doesn't make sense for a Captcha,

The problem is that the token for invRecaptcha has a lifespan of 2 minutes.

I did understand the problem, no need to explain again.

I only don't think it should be handled in Joomla. I suppose there is no single website in the world which does such a circumstance for handling the timeout of the Google captcha token, so why should Joomla start with it?

But that's my personal opinion, others may have a different view.

avatar jiweigert
jiweigert - comment - 16 Sep 2020

Richard Fath

Where did I say that actually?

You have mentioned Google Authenticator and online banking sites as
examples for a solution which might make sense for an authenticator but
doesn't make sense for a Captcha.

I may have problems with not being perfect in English, but if you would
read again, I gave an two examples of situations, were countdown timer are
used for signaling that a user have a time limit, I did not referred to the
origin function of an 2FA authenticator or to check your bank account.

That a visual countdown timer is not used, doesn't mean it can neither that
it should not.

We are talking here about a part of Invisible ReCaptcha, not any other
Captcha which function is different, can you please stay on-topic and use
the term?

avatar richard67
richard67 - comment - 16 Sep 2020

I gave an two examples of situations, were countdown timer are used for signaling that a user have a time limit, I did not referred to the origin function of an 2FA authenticator or to check your bank account.

But these were the examples given, 2FA authenticator and bank account.

Anyway, maybe it's just me not seing the need for a fix here, and as every human being I might be wrong.

Let's wait for other opinions.

avatar Fedik
Fedik - comment - 16 Sep 2020

Invisible reCaptcha and V3 reCaptcha it is two totally different things.

avatar Fedik
Fedik - comment - 16 Sep 2020

The solution is to update reCaptcha to V3 or merge this #28798

avatar jiweigert
jiweigert - comment - 16 Sep 2020

Fedik,
I'm a bit confused here, the Issue is about "Invisible reCaptcha" not reCaptcha.
So "updating" make no sense, when you actually mean:

Switching to a different product, either "reCaptcha v3" or the product "hCaptcha" in the pr #26798 you mention.

That raises questions:
a) What about users, who want to or do use "Invisible reCaptcha"? User has to fix this issue by himself?
b) Or i do get you wrong and there is a "Invisible reCaptcha v3" and the version Joomla use is simply outdated?

Edit: I see, "Invisible reCaptcha" is based on reCaptcha v2, right? (by the look on the menu items at https://developers.google.com/recaptcha/docs/invisible)
So

avatar Fedik
Fedik - comment - 16 Sep 2020

the Issue is about "Invisible reCaptcha" not reCaptcha.

The issue about the timeout, with link to reCaptcha v3, that is incorrect.

btw, "reCaptcha v3" technically also "invisible", but it has a bit different api.

What about users, who want to or do use "Invisible reCaptcha"

User have to move to new version, at some point V2 will be dropped as was with V1

avatar jiweigert
jiweigert - comment - 16 Sep 2020

Thanks for clarifying!

avatar Quy Quy - change - 9 Feb 2022
Labels Added: No Code Attached Yet Information Required
Removed: ?
avatar Quy Quy - labeled - 9 Feb 2022
avatar Quy Quy - change - 9 Feb 2022
Status New Closed
Closed_Date 0000-00-00 00:00:00 2022-02-09 20:12:47
Closed_By Quy
avatar Quy Quy - close - 9 Feb 2022
avatar Quy
Quy - comment - 9 Feb 2022

Closing for stated reasons/solutions.

Add a Comment

Login with GitHub to post a comment