i'm using JSF 2.1 + PrimeFaces 2.2 and Glassfish 3.1.2 in combination with form based authentication to secure the Web-Application against unauthorized usage.
In the last time I'm seeing a lot of tries to login against the form. Most of them are invalid Email password combinations, or non existing Emails in our database. But some are successfull.
I think that the attacker has a Mail + password list which he tries. In my LoginBean I use timer controlled accessing, by counting how many failed logins fails and denying the access for this browser session. This generally works, but not for automated scripts. So I decided to include a Captcha provided by PrimeFaces within the LoginForm. But last night I thought about, how to bypass the Captcha. That was really simple.
Go to the browser console. Type
jQuery('#recaptcha_widget_div').parent().remove()
Thats the name of Captcha component and the div for the captcha disappears. And now its again possible to drive brute force attacks against the form.
So I need another way to secure the login form against brute force. Any suggestions for best practice and examples??
Thanks