-
Migrace z Joomla 1.5, 2.5 a 3.x do nové Joomla 6
Bong ·
- X Online Joomla bar xunil ·
-
Phoca Cart - pluginy dopravy
H13 ·
-
Nový joomlaportal.cz
Linelabcz ·
-
Amanus - nová šablona Astroid frameworku podporující Phoca Cart
H13 ·
- X Claude Code a VS Code - kompromitace xunil ·
-
Phoca Download - verze 6.1.6 vydána
H13 ·
-
Phoca Cart - Booking
H13 ·
Neviditelná Recaptcha - Expired
- Cony
-
Autor
- Pryč
- Moderátor
-
Méně
Více
- Příspěvky: 5174
12. dub 2022 01:36 #146111
od Cony
Neviditelná Recaptcha - Expired od Cony
Pokud používáte na svém webu plugin pro neviditelnou ReCaptchu, možná jste se setkali s tím, že při složitějším formuláři se nepodaří formulář uložit, a Joomla zahlásí chybu "Captcha expired" (popř. nějakou českou variantu této hlášky).
Děje se to proto, že Google ReCaptcha má expiraci 2 minuty. Pokud v rámci toho času nestihne uživatel odeslat formulář, kontrola ReCaptcha neprojde. Joomla má bohužel implementaci ReCaptcha v3 nesprávně, dle Google by se měla spouštět až v okamžiku uživatelské akce (tedy odeslání formuláře) a ne při nahrání stránky (tak jak to dělá Joomla).
Obejít lze pomocí javascriptu, který automaticky reCaptchu přegeneruje každých 90s.
Děje se to proto, že Google ReCaptcha má expiraci 2 minuty. Pokud v rámci toho času nestihne uživatel odeslat formulář, kontrola ReCaptcha neprojde. Joomla má bohužel implementaci ReCaptcha v3 nesprávně, dle Google by se měla spouštět až v okamžiku uživatelské akce (tedy odeslání formuláře) a ne při nahrání stránky (tak jak to dělá Joomla).
Obejít lze pomocí javascriptu, který automaticky reCaptchu přegeneruje každých 90s.
Code:
jQuery(function() {
if(typeof grecaptcha === 'undefined') {
grecaptcha = {};
}
grecaptcha.ready = function(cb){
if(typeof grecaptcha === 'undefined') {
const c = '___grecaptcha_cfg';
window[c] = window[c] || {};
(window[c]['fns'] = window[c]['fns']||[]).push(cb);
} else {
cb();
}
}
grecaptcha.ready(function(){
setInterval(() => {
jQuery('[data-recaptcha-widget-id]').each(function () {
grecaptcha.execute(jQuery(this).data('recaptcha-widget-id'));
console.log('ReCaptcha reset #' + jQuery(this).data('recaptcha-widget-id'));
});
}, 90 * 1000);
});
});
Poděkovali: zpetr, Rudolf, Martin70
- xunil
- OFFLINE
- Zkušený uživatel
-
Méně
Více
- Příspěvky: 529
12. dub 2022 15:31 #146113
od xunil
Odpověď od xunil v tématu Neviditelná Recaptcha - Expired
Nesnižuje to "bezpečnost"?
Google ReCaptcha má expiraci 2 minuty a má k tomu asi důvod.
Netuším, jen se ptám.
Google ReCaptcha má expiraci 2 minuty a má k tomu asi důvod.
Netuším, jen se ptám.
- Cony
-
Autor
- Pryč
- Moderátor
-
Méně
Více
- Příspěvky: 5174
12. dub 2022 17:58 #146119
od Cony
Odpověď od Cony v tématu Neviditelná Recaptcha - Expired
Myslím, že by nemělo. Pro refresh Captchy se volá znovu execute, tzn. vygeneruje se nový kód. Bezpečnost by to tedy snížit nemělo, zvýší to ale dotazy na servery ReCaptchy...
Vygenerováno za 0.069 sekund