Меня часто спрашивают, как добавить дополнительный пароль для доступа к админке WordPress, и каждый раз я отвечаю, что это можно сделать без дополнительных плагинов, добавив всего лишь несколько строчек кода в конфигурационный файл и немного поработав руками с файлами.
Чтобы задать дополнительный пароль для доступа к админке, можно воспользоваться функциями сервера, отвечающего за работу вашего сайта, и задать пароль на доступ к любому файлу, находящемуся в папке wp-admin. Именно там находятся основные скрипты, отвечающие за работу административной части, поэтому еще один барьер на пути к ним может стать надежной защитой, непреодолимой для вредоносных скриптов и запросов.
Для того, чтобы добавить пароль к папке wp-admin, нужно создать файл .htpasswds — этот файл будет содержать информацию о пользователе и его пароле доступа. Для создания этого файла легче всего воспользоваться сервисом htpasswd generator.
Там все элементарно:
- Вводите логин пользователя. Очень хорошо будет, если этот логин не будет никак пересекаться с логинами пользователей блога — придумайте что-нибудь совсем уникальное, и не говорите никому об этом.
- Вводите пароль этого секретного пользователя. Я рекомендую использовать надежные пароли, сгенерированные случайным образом из непредсказуемых сочетаний символов — такие пароли невозможно подобрать.
- В ответ вы получите некий код, который нужно вставить в пустой текстовый файл. Назовите этот файл .htpasswds — да, вот такое странное название, начинающееся с точки.
Считайте, что полдела сделано. Теперь нужно правильно разместить файл htpasswds. Для этого выбирайте или создавайте папку, к которой нет доступа извне. Например, home/user/.htpasswds/public_html/wp-admin/passwd/.
Теперь создайте файл .htaccess (пустой текстовый файл), и добавьте в него следующий код:
AuthName "Admins Only" AuthUserFile /home/user/.htpasswds/public_html/wp-admin/passwd AuthGroupFile /dev/null AuthType basic require user putyourusernamehere Order allow,deny Allow from all Satisfy any
Обратите внимание, что параметр AuthUserFile содержит полный путь к файлу .htpasswds, так что если вы расположили его в другом месте, то не укажите правильный, полный путь в эту папку.
Вы создали файл .htaccess и добавили в него вышеприведенный код? Теперь поместите его в папку wp-admin. Все, эта папка защищена дополнительным паролем: при попытке выполнить какой-нибудь скрипт в ней (например, зайти в админку), вы увидите окно с полями для ввода логина и пароля.
Помните, вы вводили эти данные в самом начале, создавая в генераторе файл .htpasswds? Воспользуйтесь ими — и будет вам счастье.
admin-post.php тоже может быть вызван без аутентификации, так же как и admin-ajax.php