После прочтения заголовка, вы навернео задались вопросом, разве не защищена директория wp-admin паролем? Да, вам предлагают залогиниться. Все это верно, однако популярные сайты предпочитают навесить еще один «слой» безопасности в виде дополнительной аутентификации. Несколько дней назад появилась новость на ХабраХабре Распределённая атака на WordPress сайты об атаках на сайты на WordPress. В статье рекомендуют защитить паролем админ.папку. В этой статье мы расскажем, как пошагово усановить пароль на директорию wp-admin.
Чтобы все было легко и доступно, мы рассмотрим только хостинги с панелью управления cPanel, так как у cPanel довольно простой интерфейс для установки пароля на папки на сервере.
Залогиньтесь в вашу cPanel. Прокрутите до вкладки Безопасность (Security). Кликните на иконку “Password Protect Directories”.
После клика появится модальное окно, в котором у вас запросят расположение папки. Кликлине на корень сервера. Когда окажетесь там, перейдите в папку, где установлен ваш WordPress. Затем кликните на папку /wp-admin/. Увидите что-то вроде этого:
Отметьте соответствующую галочку «Password protect this directory». Затем создайте пользователя для папки. Вот и все. Теперь при попытке доступа к wp-admin вы будете видеть окошко запроса пароля:
Ручной способ
Перво-наперво создайте файл .htpasswds. Также это можно сделать с помощью этого генератора. Загрузите этот файл вне вашего каталога /public_html/. К примеру, это может быть:
home/user/.htpasswds/public_html/wp-admin/passwd/
Затем создайте файл .htaccess и загрузите его в папку /wp-admin/. Добавьте туда следующие строки:
AuthName "Admins Only" AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/passwd AuthGroupFile /dev/null AuthType basic require user putyourusernamehere
Здесь вам нужно указать имя пользователя вместо putyourusernamehere, а также обновить путь к файлу с паролем — AuthUserFile .
Если возникает ошибка 404 или Too many redirects
Такое может случиться в зависимости от того, как настроен ваш сервер. Для исправления ошибок, откройте ваш основной файл .htaccess (находящийся в корне установленного движка) и добавьте туда следующие директивы, перед директивами WordPress.
Well this can happen depending on how your server is configured. To fix this issue, open your main WordPress .htaccess file and add the following code there before the WordPress rules start.
ErrorDocument 401 default
Всё. Готово. Теперь у вас двухэтапная аутентификация в админ.панель сайта.
Примечание: Как исправить ошибку Admin Ajax
Если вы таким вот способом защитили админ.папку WordPress, он (способ) мог нарушить функциональную Ajax-часть сайта (если таковая использовалась).
В таком случае необходимо в файл .htaccess, расположеный в папке /wp-admin/ (НЕ тот файл, который мы редактировали выше), добавить следующий код:
<Files admin-ajax.php> Order allow,deny Allow from all Satisfy any </Files>