Segurança e .htaccess

8

Há cerca de um mês, iniciei um blog WordPress em um servidor hospedado relacionado a um hobby. Então, eu sou novo nisso no momento.

Como estou preocupado com a segurança, uma coisa que fiz foi instalar o plug-in WP Security Scan. De acordo com os resultados do plug-in, meu site faz check-out, exceto que eu recebo isso nos resultados como uma bandeira vermelha:

O arquivo .htaccess não existe em wp-admin / (eu ssh'd lá e ele não existe)

Ok, fiz uma pesquisa considerável sobre o assunto e encontrei muitas informações em .htaccess. Passei pelo Hardening WordPress no site WordPress.org, etc. E também deparei com este artigo: http://digwp.com/2010/07/wordpress-security-lockdown/

Enfim, basicamente fiquei confuso com a infinidade de informações disponíveis.

O que deve conter o arquivo .htaccess no wp-admin? Eu li que esse arquivo .htaccess deve proteger com senha o diretório wp-admin e também li que isso pode causar problemas de funcionalidade.

Ajuda com isso é muito apreciada.

Obrigado. -wdypdx22

Atualização Ok, então não estou logado no meu blog e usando um computador diferente do habitual. Entro no URL www.mysite.com/wordpress/wp-admin/ e há um redirecionamento para o login. Se é isso o que acontece, então um arquivo htaccess é necessário no diretório wp-admin?

wdypdx22
fonte
Você já tentou perguntar ao desenvolvedor do WP Security Scan?
Doug
@ Doug - Sim, o desenvolvedor tem um fórum com pelo menos 2 outras pessoas fazendo a mesma pergunta e sem resposta. Além disso, eu postei no wordpress.org e nenhuma resposta lá também. Então, talvez isso nem importe?
Wdypdx22

Respostas:

8

ATUALIZAÇÃO : Quando publiquei minha resposta, perdi o cerne da questão; minha resposta foi sobre.htaccesssegurança em geral e agora está listada abaixo da linha dupla (veja se isso lhe interessa.) Infelizmente, não tenho experiência específica com a segurança do/wp-admin/uso,.htaccessentão listarei os dois recursos que procurarei quando e se Eu preciso disso:

O primeiro recomenda o seguinte (e aqui estão algumas discussões sobre o assunto ).

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

Este último possui muitas informações, principalmente nos comentários, mas admitir que fornecer uma lista para ler não é a resposta que você estava procurando.

Desculpe, eu não poderia ter sido mais útil neste.

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

Normalmente, o WordPress tem apenas o seguinte, que processou o processamento de links permanentes e não está relacionado à segurança:

# 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

Recentemente, encontrei o plug-in WP htacess Control, que gerencia muito de .htaccessvocê e eu gosto bastante. Após ajustar as configurações, foram adicionadas as seguintes opções:

# WPhtC: Disable ServerSignature on generated error pages
ServerSignature Off

# WPhtC: Disable directory browsing
Options All -Indexes

# WPhtC: Protect WP-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>

# WPhtC: Protect .htaccess file
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
</files>

Ele também adicionou essas opções que tratam do desempenho, e não da segurança:

# WPhtC: Setting 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: Setting 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>

Além deste, existem alguns plugins que eu não tentei, mas focados na segurança e com os quais interagem .htaccess- você pode experimentá-los apenas para ver o que eles fazem no .htaccessarquivo:

Além disso, se você quiser conhecer o recurso especialista (IMO) nº 1 em segurança do Apache relacionado ao WordPress, você pode encontrá-lo no AskApache.com ; cara é hardcore! O blog dele não resolverá o problema de " muita informação ", mas pelo menos você poderá vê-lo como um recurso autoritário!

Aqui estão alguns exemplos (embora nem todos estejam diretamente relacionados ao WordPress, todos são aplicáveis):

Enfim, espero que isso ajude.

MikeSchinkel
fonte
Grande Informação para a segurança global, mas não responde sobre / wp-admin / pasta
Ryan Gibbons
Embora todas essas informações sejam úteis, nada disso tem a ver com a questão. Isso tudo está relacionado ao .htaccess no diretório raiz. A pergunta original era sobre .htaccess no subdiretório wp-admin.
Doug
@ Insanity5902 @Doug: Meu mal. Só não vi isso quando estava lendo.
MikeSchinkel
2
Aceitei sua resposta basicamente porque, basicamente, a segurança geral é meu objetivo. Meu blog é muito novo, mas meu tráfego está crescendo. Basicamente, eu só quero medidas de segurança para se e quando eu realmente começar a receber muito tráfego. -Obrigado
wdypdx22
11
@wdypdx - Muito obrigado. Fiquei realmente envergonhado quando percebi que havia perdido sua pergunta principal em negrito. Ainda bem que acabou positivo.
MikeSchinkel
4

A idéia por trás disso, se você tiver arquivos estrangulados pendurados em atualizações anteriores ou para ataques de dia zero, seu sistema poderá ser invadido. Também proteger o wp-admin por outro método ajudará contra ataques de força bruta.

Uma idéia) Se for apenas você editando o site, poderá limitar o acesso à pasta pelo ip, fazendo algo como

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

Para torná-lo um pouco mais tolerável para sistemas IP dinâmicos; você deve poder permitir a partir de um sub-bloco; portanto, se o pool de IPs for sempre de 1.2.3.128 a 1.2.3.255, você poderá fazer algo como 1.2.3.128/25

Outra idéia) exigem HTTPS, dê uma permissão negada se tentarem por http. Mas não os redirecione para o https. Você pode usar um certificado autoassinado ou um da CA Cert para sobreviver sem comprar um.

Ryan Gibbons
fonte
0

Eu sempre incluo um arquivo .htaccess no wp-admin, mesmo que nunca coloque nada nele, pois ele nega o arquivo do diretório raiz. Algumas pessoas usam o arquivo wp-admin .htaccess para ocultar o diretório inteiro de todos os endereços IP, exceto um, enquanto outros o usam para proteger com senha o diretório.

No entanto, a proteção por senha da seção admin com .htaccess desabilitará as comunicações do ajax, pois elas interagem com o wp-admin / admin-ajax.php.

Geralmente, não vejo muitos motivos para adicionar nada ao arquivo .htaccess do administrador, a menos que você seja extremamente paranóico. Os ataques geralmente têm como alvo o conteúdo wp.

John P Bloch
fonte
11
Um arquivo .htaccess em um subdiretório pode substituir diretivas no diretório raiz, mas um .htaccess em branco não nega nada.
Doug
Então eu fui mal informado. Hmmmm ...
John P Bloch
O que você precisa fazer é reverter o que está na raiz, se houver. No entanto, a resposta do Insanity é melhor do que a marcada como a melhor, embora seja melhor que contenha as informações do Insanity.
Arlen Beiler
0

eu também uso a biblioteca sseqlib para obter mais segurança e hacks diferentes nos .htacces; veja os links

bueltge
fonte