Защита wp-login


Для WP в .htaccess в корне сайта добавляем:

RewriteEngine on
RewriteCond %{HTTP_COOKIE} !some_cookie=some_value
RewriteRule ^(wp-login\.php|wp-admin/)$ - [F,L] ErrorDocument 403 "<html><body><script>document.cookie='some_cookie=some_value;path=/';location.reload();</script></body></html>"

Для Joomla добавляем в .htaccess в директории "administrator":

RewriteEngine on
RewriteCond %{HTTP_COOKIE} !some_cookie=some_value
RewriteRule ^index\d?\.php$ - [F,L] ErrorDocument 403 "<html><body><script>document.cookie='some_cookie=some_value;path=/';location.reload();</script></body></html>"

some_cookie и some_value меняем на произвольные.


Данный код выдаёт всем ботам без куки ошибку 403 с ява-скриптом, устанавливающим эту куку.
Код не дружит с плагинами, устанавливающими собственные страницы для ошибки 403. В частности, с WP Bulletproof security.

Выдаваемый ява-скрипт рекомендую модифицировать. У нас он, например, подвергается обфускации, чтобы нельзя было простым анализом выяснить, какую куку нужно устанавливать, чтобы получить возможность заходить в админку.