Безопасность и файл .htaccess

12 авг. 2010 г., 17:28:13
Просмотры: 2.96K
Голосов: 8

Около месяца назад я запустил блог на WordPress на хостинге, посвященный моему хобби. В настоящее время я новичок в этом деле.

Поскольку меня беспокоит безопасность, я установил плагин WP Security Scan. Согласно результатам проверки плагина, мой сайт в порядке, за исключением одного красного флажка:

Файл .htaccess отсутствует в wp-admin/ (я проверил через ssh - его действительно нет)

Я провел обширный поиск по этому вопросу и нашел слишком много информации о .htaccess. Изучил раздел "Усиление защиты WordPress" на WordPress.org и наткнулся на эту статью: http://digwp.com/2010/07/wordpress-security-lockdown/

В общем, я запутался в обилии доступной информации.

Что должно содержаться в файле .htaccess в wp-admin? Я читал, что этот файл должен защищать паролем директорию wp-admin, но также встречал мнение, что это может вызвать проблемы с функциональностью.

Буду очень благодарен за помощь.

Спасибо. -wdypdx22

Обновление Сейчас я не вхожу в свой блог и использую другой компьютер. Когда я ввожу URL www.mysite.com/wordpress/wp-admin/, происходит перенаправление на страницу входа. Если это происходит автоматически, то нужен ли вообще файл htaccess в директории wp-admin?

2
Комментарии

Вы пробовали спросить у разработчика WP Security Scan?

Doug Doug
12 авг. 2010 г. 18:42:57

@Doug - Да, у разработчика есть форум, где как минимум два других человека задают точно такой же вопрос, и нет ответа. Также я разместил вопрос на wordpress.org, и там тоже нет ответа. Так что, может быть, это даже не важно?

wdypdx22 wdypdx22
12 авг. 2010 г. 19:52:28
Все ответы на вопрос 4
5

ОБНОВЛЕНИЕ: Когда я впервые опубликовал свой ответ, я упустил суть вопроса; мой ответ касался безопасности .htaccess в целом и теперь указан ниже двойной линии (посмотрите вниз, если вам это интересно.) К сожалению, у меня нет конкретного опыта в защите /wp-admin/ с помощью .htaccess, поэтому я просто перечислю два ресурса, которые я буду изучать, если мне это понадобится:

Первый из них рекомендует следующее (и вот некоторые обсуждения по этому поводу.)

<Files ~ "\.(php)$">
AuthUserFile /etc/httpd/htpasswd
AuthType Basic
AuthName "restricted"
Order Deny,Allow
Deny from all
Require valid-user
Satisfy any
</Files>

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

Извините, что не смог быть более полезным в этом вопросе.

========================================

Обычно WordPress имеет только следующее, что обрабатывает постоянные ссылки и не связано с безопасностью:

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

Недавно я обнаружил плагин WP htaccess Control, который управляет многими аспектами .htaccess за вас, и мне он очень понравился. После настройки его параметров он добавил следующие опции:

# WPhtC: Отключить ServerSignature на страницах ошибок
ServerSignature Off

# WPhtC: Отключить просмотр директорий
Options All -Indexes

# WPhtC: Защита WP-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>

# WPhtC: Защита файла .htaccess
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
</files>

Он также добавил эти параметры, которые касаются производительности, а не безопасности:

# WPhtC: Настройка mod_gzip
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

# WPhtC: Настройка mod_deflate
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent env=!dont-vary
</IfModule>

Помимо этого, есть несколько плагинов, которые я не пробовал, но которые ориентированы на безопасность и взаимодействуют с .htaccess — вы можете попробовать каждый из них, чтобы увидеть, что они делают с файлом .htaccess:

Кроме того, если вы хотите узнать (по моему мнению) главный экспертный ресурс по безопасности Apache, связанной с WordPress, вы можете найти его на AskApache.com; этот парень — профессионал! Его блог не решит вашу проблему "слишком много информации", но по крайней мере вы можете считать его авторитетным источником!

Вот несколько примеров (хотя не все они напрямую связаны с WordPress, все они применимы):

В любом случае, надеюсь, это поможет.

12 авг. 2010 г. 18:27:52
Комментарии

Отличная информация по общей безопасности, но не отвечает на вопрос о папке /wp-admin/

Ryan Gibbons Ryan Gibbons
12 авг. 2010 г. 18:36:49

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

Doug Doug
12 авг. 2010 г. 18:45:07

@Insanity5902 @Doug: Моя ошибка. Просто не заметил этого, когда читал.

MikeSchinkel MikeSchinkel
12 авг. 2010 г. 18:59:31

Я принял ваш ответ в основном потому, что, в конечном счете, общая безопасность - это моя цель. Мой блог совсем новый, но трафик растет. По сути, я просто хочу иметь меры безопасности на случай, если и когда у меня действительно появится много посетителей. -Спасибо

wdypdx22 wdypdx22
12 авг. 2010 г. 20:28:03

@wdypdx - Огромное спасибо. Мне было очень неловко, когда я понял, что пропустил ваш основной вопрос, выделенный жирным. Рад, что все обернулось хорошо.

MikeSchinkel MikeSchinkel
12 авг. 2010 г. 20:29:52
0

Основная идея заключается в том, что если у вас остались старые файлы от предыдущих обновлений или уязвимости для атак нулевого дня, ваша система может быть взломана. Также защита wp-admin дополнительным методом поможет против brute-force атак.

Один из вариантов) Если только вы редактируете сайт, вы можете ограничить доступ к папке по IP, сделав что-то вроде:

<Files *>
Order deny,allow
Deny from All
Allow from 1.2.3.4
</Files>

Чтобы сделать это немного более терпимым для систем с динамическими IP; вы можете разрешить доступ из подсети, так что если ваш пул IP всегда в диапазоне 1.2.3.128 - 1.2.3.255, тогда вы можете сделать что-то вроде 1.2.3.128/25

Другой вариант) требовать HTTPS, выдавать отказ в доступе при попытке соединения по HTTP. Но не перенаправлять их на HTTPS. Вы можете использовать самоподписанный сертификат или от CA Cert, чтобы обойтись без покупки.

12 авг. 2010 г. 18:32:56
3

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

Однако защита админ-раздела с помощью .htaccess отключит ajax-коммуникации, поскольку они взаимодействуют с wp-admin/admin-ajax.php.

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

12 авг. 2010 г. 18:21:09
Комментарии

Файл .htaccess в подкаталоге может переопределять директивы из корневого каталога, но пустой .htaccess ничего не отменяет.

Doug Doug
12 авг. 2010 г. 18:48:10

Тогда меня дезинформировали. Хммм...

John P Bloch John P Bloch
12 авг. 2010 г. 18:50:04

Вам нужно отменить то, что находится в корне, если там что-то есть. Однако ответ Insanity лучше, чем тот, который отмечен как лучший, хотя было бы лучше, если бы в нём содержалась информация от Insanity.

Arlen Beiler Arlen Beiler
13 авг. 2010 г. 15:25:42
0

Я также использую библиотеку sseqlib для повышения безопасности и защиты от различных атак в файле .htaccess; смотрите ссылки ниже

13 авг. 2010 г. 14:14:37