Autor Zpráva
matata8611
Profil
Ahoj,
nedaří se mi zabezpečit formulář proti spam robotům.
Jedná se o plugin Profile builder do wordpress, který umožnuje registraci uzivatele.

Udělal jsem tyto opatření.
Pri vypnutem js presmeruje jinam:
<noscript>
    <meta http-equiv="refresh" content="0;URL='http://severacek.cz/nojava'">
    </noscript>

Do formuláře jsem vlozil textove pole, které se ptá kolik je 1+1.
var captcha = "<li class='wppb-form-field wppb-default-captcha'><label for='captcha'>Kolik je 1+1<span class='wppb-required' title='This field is required'>*</span></label><input class='text-input default_field_captcha' name='captcha' maxlength='70' id='captcha' value='' required='' type='text'></li>";
$( "li.wppb-default-repeat-password" ).after(captcha);

Následne probíhá kontrola zda pole obsahuje dvojku a pokud ne tak:
$( "input#register" ).addClass('disable').attr('disabled', 'disabled');;

    $('body').on('mouseover', 'input#register.disable', function(event)
    {
        alert('Vyplňte prosím správně kolik je 1+1?');
    });
    $('#captcha').keyup(function() {
     if (this.value == "2") {
        $( "input#register" ).removeClass('disable').removeAttr('disabled');;
    }
    else {
        $( "input#register" ).addClass('disable').attr('disabled', 'disabled');;
        }
});
    
    

Dále jsem zamezil odeslani formulare Enterem:
$('#wppb-register-user').on('keyup keypress', function(e) {
          var keyCode = e.keyCode || e.which;
          if (keyCode === 13) { 
            e.preventDefault();
            return false;
          }          
        });


Presto se mi registruji roboti.
Jedná se o tuto stranku: severacek.cz/registrace

Děkuji moc.
pcmanik
Profil
matata8611:
Robot nebude nasledovať presmerovanie ktoré je podstrčené cez meta tag.
Čiže tým pádom je celá tvoja JS ochrana na nič a to že užívateľom blokuješ Enter, je trestuhodné.

Namiesto snahy o tvorbu vlastnej ochrany, skús využiť niečo existujúce napr. reCaptchu, ktorá bude čosko aj bez otravovania užívateľa.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: