How to protect your WordPress from XML-RPC attack



WordPress is the most popular Content Management System. This popularity makes WordPress a perfect target for hackers. The most common attack faced by a WordPress site is XML-RPC attack. The WordPress XML-RPC is a specification that aims to standardize communications between different systems. It uses HTTP as the transport mechanism and XML as encoding mechanism which allows for a wide range of data to be transmitted. Today in this tutorial I will show you how to protect your WordPress from XML-RPC attack.

The Problems with XML-RPC

The two biggest assets of the API is its extendability and its security. XML-RPC authenticates with basic authentication. It sends the username and password with each request.

XML-RPC Attacks

Randomly “Error establishing database connection” error is displaying on the WordPress site.
“Out of memory” error in web console.
“Cannot open the file no such file/directory” error in web server error log.
“POST /xmlrpc.php HTTP/1.0” error in webserver access log.

Blocking XML-RPC attack

If you don’t use XML-RPC at all, perhaps the best thing you can do is disable it via plug-in or you can do this with code by adding the following to a plugin or theme:

add_filter( 'xmlrpc_enabled', '__return_false' );

Add Following code in .htacess file

<files xmlrpc.php>
order allow,deny
deny from all
</files>

OR

location ~* ^/xmlrpc.php$ {
	return 403;
}
How to check WordPress XML-RPC?

If your try to open http://example.com/xmlrpc.php, it will show forbidden.