Autor | Zpráva | ||
---|---|---|---|
matata8611 Profil |
#1 · Zasláno: 18. 12. 2016, 15:25:48
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. |
||
Časová prodleva: 6 let
|
0