Настройка безопасности сайта на wordpress.

настройка безопасности сайта на wordpress

Приветствую вас читатель! Тема поста — организационно технические мероприятия по настройке безопасности сайта на WordPress. Пожалуй это самое первое, на что необходимо обратить внимание, ведь как говорится – береженного Бог бережет.

Первое, что сделаем – удалим ненужные файлы из корневого каталога, если кто не знает, это место, где расположены файлы движка. Подключаемся по FTP  и заходим в корневую директорию, путь должен быть следующий  /domains/ваш сайт.ru, находим здесь файл readme.html. и удаляем его.

Этот файл представляет собой простой HTML-файл, который не содержит исполняемый контент, но который может быть использован злоумышленниками, в частности может дать информацию о версии WordPress.

Следующим шагом настройки безопасности будет удаление файла «install.php», который находится в папке «wp-admin». Этот файл необходим только при установке WordPress.

Также я удалил из этой папки файл «upgrade.php»

Настройки безопасности сайта посредством «.htaccess»

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

Файл «.htaccess» необходимо установить в корневую папку сайта (для удобства я буду называть его основным файлом), для этого создаёте любой текстовый документ на рабочем столе вашего компьютера, присваиваете ему имя – «.htaccess» (без кавычек, с точкой перед htaccess). В теле самого документа прописываете стандартный код:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Скопировать код в буфер – двойной клик левой кнопкой – копировать.

Безопасность и конфиденциальность «wp-config.php»

В корневой папке сайта находится файл «wp-config.php», в котором находится конфиденциальная информация, а именно имя базы данных, пароль и логин. Крайне не хотелось бы, чтоб эта информация попала в чужие руки, для того, чтобы предотвратить несанкционированный доступ к этому секретному документу, вписываем в наш htaccess файл после строки # END WordPress — следующий код:

<Files wp-config.php>
order allow,deny
deny from all
</Files>

Теперь, когда файл готов, заливаем его в директорию корневого каталога /domains/ваш сайт.ru и продолжаем настройку безопасности.

Настройка безопасности панели администратора WordPress.

Следующим шагом настройки безопасности вашего сайта на wordpress будет создание еще одного файла «.htaccess» для папки wp-admin. Этот файл поможет предотвратить несанкционированный доступ к папке администратора путем блокировки незаявленного IP адреса. Здесь необходимо учитывать следующий факт: ваш IP адрес должен быть статическим, т.е. неизменным в отличии от динамического, поэтому, если вы уверены, что ваш IP статический, то вперед!

Создаем файл в текстовом документе, присваиваем ему имя .htaccess, в теле документа прописываем стандартный код, который указан выше и после строки # END WordPress — вставляем:

order deny,allow
allow from 237.070.33.17 (replace with your IP address)
deny from all

Вместо 235.070.33.17 вставляете свой IP, сохраняете и закидываете в папку wp-admin, вашего сайта. Обязательно проверьте, для этого зайдите в админ панель своего блога и походите по различным вкладкам. В случае, если введен неправильный IP, то запрашиваемая страница не откроется и вы увидите надпись типа «доступ к станице запрещен». В этом случае просто исправьте ошибку или удалите созданный файл до выяснения причины!

Если вам необходим доступ с нескольких IP адресов, тогда просто копируете строку кода с IP сколько нужно раз и к каждой строке присваиваете нужный IP.

Вы всегда должны помнить, что в папке wp-admin находится файл .htaccess, который блокирует доступ по IP, на случай, если поменяете место жительства или что-то вроде того. Чтобы снять блокировку, нужно просто удалить этот файл.

Можно запретить доступ в панель администрирования с конкретного IP адреса, для этого в этот же файл .htaccess добавляете код:

<Limit GET POST PUT>
order allow,deny
allow from all
deny from 46.160.64.94
</LIMIT>

Где вместо 54.170.63.74 – вставляете нужный IP. Строку «deny from» можно прописывать сколько угодно раз, вставляя разные IP адреса.

Безопасность директории «wp-content».

В папке – «wp-content», хранятся все ваши темы, плагины, скрипты, картинки и многое другое. В связи с этим  будет совсем не лишним обезопасить и её от всякого рода неприятностей. Для этого нужно создать еще один новый файл .htaccess, поместить в него коротенький код и залить в указанную папку.

Копируем этот код:

<Files ~ ".(xml|css|jpe?g|png|gif|js)">
Allow from all
</Files>

Вставляем в тело нового файла .htaccess после строки # END WordPress и сохраняем.

Созданный файл помещаем в папку «wp-content», тем самым блокируя доступ к функциям PHP.

Защита от СПАМа и прочих БОТов.

С помощью файла .htaccess можно создать дополнительную защиту от СПАМа, для этого нужно дописать в него этот код:

# protect from spam comments
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*Ваш домен.ru.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

Этот фрагмент кода помещается в основной файл, который находится в корневой папке!
Вы наверное знаете, что всемирная паутина кишит всякими паразитами БОТами, которые постоянно сканируют ВЕБ ресурсы, проявляя особенный интерес к файлам  Robots.txt, предназначенный для поисковых роботов. Все это создает дополнительную нагрузку и риск для вашего сайта. Чтобы оградить свой сайт от ненужного любопытства подобных тварей, нужно в этот же самый файл .htaccess добавить следующий код:

RewriteBase /
RewriteCond %{REQUEST_URI} !^/robots.txt$ [NC]
RewriteCond %{REQUEST_URI} robots\.txt [NC]
RewriteRule .* http://Ваш сайт.ru/robots.txt [R=301,L]

В поле «Ваш сайт» прописать нужный домен и сохранить.

Защита файла .htaccess!

Заключительным штрихом в настройке безопасности вашего сайта на wordpress будет защита самого файла .htaccess от несанкционированного доступа нежелательными элементами.

Следующий фрагмент кода будет защищать все файлы, которые начинаются с комбинации «hta», от ненужного любопытства тех, кто любит совать свой нос, куда не следует.

<Files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</Files>

Этот фрагмент кода вставляется в основной файл .htaccess в корневую папку вашего сайта.

Все представленные технические мероприятия по безопасности сайта wordpress средствами .htaccess, создают отличную защиту вашего ресурса, а при совместном использовании с плагинами типа WP security, эта защита становится комплексной, а стало- быть еще более мощной.

На этом пожалуй все, статья получилась на мой взгляд достаточно информативной. Если вы используете другие способы защиты и безопасности, расскажите про них, мне было бы интересно узнать!!!

15 Responses to Настройка безопасности сайта на wordpress.

  1. Роман:

    Спасибо за познавательную и информативную статью, сегодня поставил чистый движок и она мне как раз к стати ))
    Интересно было бы узнать как сделать кнопку вверх в виде ракеты как у вас? У меня сайт игровой тематики и такая кнопочка была бы очень к стати ))
    Если не затруднит на имейл или здесь отпишитесь пожалуйста!

  2. Роман:

    как правильнее прописатьsmile:confused: Или же это все совсем по другому нужно?

    • У меня коды разве так в посте представлены? Просто скопируй фрагменты и скомпануй в том порядке, как указано в статье, там для разных файлов в WP разные фрагменты кода, почитай внимательнее…

  3. Евгения:

    Здравствуйте. Сделала как у вас описано, правда не на компе в блокноте создала, а у вас скопировала, в итоге сайт не работает пишет Internal Server Error как мне быть, ведь мне нужны эти файлы защиты

    • Здравствуйте Евгения! Думаю, что проблема в блокировке по IP, внимательно прочитайте пункт «Настройка безопасности панели администратора WordPress», скорее всего, Вы заблокировали себя по IP, здесь необходимо понимать, что ваш IP должен быть статическим, если вы точно не знаете, то лучше уберите эту часть кода. Там есть два фрагмента кода, второй для блокировки с конкретного IP адреса, возможно вы указали там свой и в результате получилось то, что получилось, его нужно применять только, если вы хотите запретить доступ с этого адреса, в общем для устранения проблемы, удалите оба фрагмента…

  4. Здравствуйте. Я убрала IP и поставила вот так в главном, что не так сделала? Может что то местами надо поменять?

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ — [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    RewriteBase /
    RewriteCond %{REQUEST_URI} !^/robots.txt$ [NC]
    RewriteCond %{REQUEST_URI} robots\.txt [NC]
    RewriteRule .* http://мое_имя/robots.txt [R=301,L]

    # protect from spam comments
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} POST
    RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
    RewriteCond %{HTTP_REFERER} !.*Ваш домен.ru.* [OR]
    RewriteCond %{HTTP_USER_AGENT} ^$
    RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

    # END WordPress

    order allow,deny
    deny from all
    satisfy all

    • Евгения, Вы все напутали, код который вы прописали в конце основного файла .htaccess

      order allow,deny
      deny from all
      satisfy all

      Этот код служит для защиты самого файла .htaccess и к блокировке по IP он не имеет никакого отношения. Для защиты от несанкционированного доступа служит другой код, вот он:
      # END WordPress
      order deny,allow
      allow from 237.070.33.17 (replace with your IP address)
      deny from all
      Для этого кода создается отдельный файл .htaccess и помещается он не в корень, где ваш основной .htaccess, а в папку «wp-admin» и вместо «237.070.33.17» нужно вставить свой IP. Данный файл можно создать только в том случае, если у вас статический (неизменный) IP. По вашим комментариям я вижу, что ваш IP постоянно меняется, в первый раз был такой: 94.240.120.145, а в последний такой: 5.45.192.105, либо вы заходите через разных провайдеров, либо у вас динамический IP, в этом случае лучше не использовать .htaccess
      Этот код:
      order allow,deny
      deny from all
      satisfy all
      -можете оставить, все верно, он защищает сам файл .htaccess, правда он в комментариях не корректно отображается, скопируйте со страницы, самый последний абзац.
      Удачи Вам!

  5. Теперь понятно. Провайдер у меня один, но у меня модем Ростелеком. ( Спасибо. То то я думаю почему когда я прописывала IP сайт переставал для меня работать. Так вот я не поняла, мне что надо 2 файла .htaccess к себе в корень ставить?

    • Если Вы заходите в сеть с USB модема, то вам категорически не рекомендуется использовать блокировку по IP, забудьте про нее. В корень устанавливается один файл .htaccess, он основной, но есть еще директивы .htaccess для конкретных файлов движка, например для «wp-config.php» или «wp-admin», в этом случае для этих папок создается новый документ .htaccess в который прописывается соответствующий код, в статье все подробно описано, нужно только почитать по внимательнее и все у вас Евгения получится…

  6. Можно еще раз задать глупый вопрос. Я перечитала несколько раз вашу статью, но что вы скажете на то что когда я поставила данный код в главный корень сайт не отображается пишет Internal Server Error и самое интересное, человек на другом конце с другими ip видит тоже самое.

    order allow,deny
    deny from all

    Мне надо удалять этот .htaccess и создавать новый?

  7. Все спасибо вам огромное, я сделала это у меня там была ошибочка одна маленькая.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *