Warning: mysqli_num_fields() expects parameter 1 to be mysqli_result, boolean given in /home/hostbig/public_html/blog/wp-includes/wp-db.php on line 3283
WordPress Brute Force Attacks
WordPress’ popularity not only attracts bloggers but also hackers. Hackers try to compromise WordPress installations to send spam, setup phishing exploits or launch other attacks.
While there are many sophisticated attacks against WordPress, hackers often use a simple brute force password attack. In these attacks, botnets try to guess your admin password.
You may think that such attacks would fail, but they exploit one of the weakest links in the security chain: You.
People don’t like complex passwords. As a result, low security passwords get put into production. Even if you have good password policies and use password management tools (I use LastPass), simple passwords slip through. This is why I like security in-depth.
By adding an extra layer of security to your systems, you can stop WordPress brute force attacks.
Stop Attacks with HTTP AUTH
WordPress actually has a great list of WordPress hardening tips. Some of these are complex and require server level or code level changes. However, in my experience brute-force and XSS attacks against WordPress are common exploit tactics. Simply by blocking access to the login and admin areas using HTTP Authentication, you can add an additional layer of security.
You are probably already familiar with HTTP AUTH. Many people refer to it simply as password protecting a directory or site with .htaccess. Technically, when you add these directives to .htacess you are enabling the HTTP authentication tools built into the Apache web server.
By setting up a htaccess to limit access to WordPress login functions, you can stop most brute force attacks.
Setting up HTTP AUTH
I recommend limiting access to the wp-login.php to stop WordPress brute force attacks.
You can do this easily by setting up htaccess password protection.
There are plenty of tutorials online about how to set up htaccess files and generate the password files. Plesk, cPanel and other systems often have this built into their control panels. So I am going to assume you know how to set up htaccess and setup a htpasswd file (if not Google is your friend).
Also, I recommend you use different usernames and passwords for the htaccess and your blog.
Once you have your password file setup, you need to add the following to your htaccess file:
# Protect wp-login
AuthName “Private access”
require user mysecretuser
These settings will cause an additional HTTP pop-up before you login to WordPress.
You will need to enter the username and password you setup in your htpasswd file to get passed this box. Once you login to here, you will then see the normal WordPress login screen.
Note that the username and passwords used in your htaccess files have nothing to do with those used in WordPress. If you have multiple bloggers, you could use a single username and password for the HTTP Authentication phase and then have the bloggers use their own access details to log into WordPress.