25 Truques Úteis do ‘.htaccess’ do Apache para Segurança e Personalização de Sites

Os websites são partes importantes de nossas vidas. Eles servem como meios para expandir negócios, compartilhar conhecimento e muito mais. Anteriormente restritos a fornecer apenas conteúdos estáticos, com a introdução de linguagens de script dinâmicas do lado do cliente e do servidor e o contínuo avanço da linguagem estática existente, como html para html5, é possível adicionar toda a dinamicidade aos websites e o que resta é esperado seguir em breve no futuro próximo.

Com os websites, surge a necessidade de uma unidade que possa exibir esses websites para um grande conjunto de público em todo o mundo. Essa necessidade é atendida pelos servidores que fornecem meios para hospedar um website. Isso inclui uma lista de servidores como: Apache HTTP Server, Joomla e WordPress que permitem hospedar seus websites.

25 htaccess Tricks

Quem deseja hospedar um website pode criar um servidor local próprio ou entrar em contato com qualquer um dos servidores mencionados acima ou qualquer outro administrador de servidor para hospedar seu website. Mas o problema real começa a partir deste ponto. O desempenho de um website depende principalmente dos seguintes fatores:

  1. Banda consumida pelo website.
  2. Quão seguro é o website contra hackers.
  3. Otimismo quando se trata de pesquisa de dados através do banco de dados
  4. Facilidade de uso ao exibir menus de navegação e fornecer mais recursos de IU.

Além disso, vários fatores que governam o sucesso dos servidores na hospedagem de websites são:

  1. Quantidade de compressão de dados alcançada para um website específico.
  2. Capacidade de atender simultaneamente vários clientes que solicitam o mesmo website ou diferentes.
  3. Protegendo os dados confidenciais inseridos nos sites como: e-mails, detalhes de cartão de crédito e assim por diante.
  4. Permitindo mais e mais opções para aprimorar a dinamicidade de um site.

Este artigo trata de um recurso fornecido pelos servidores que ajuda a melhorar o desempenho dos sites, além de protegê-los de bots maliciosos, hotlinks, etc., isto é, o arquivo ‘.htaccess‘.

O que é .htaccess?

htaccess (ou acesso hipertexto) são arquivos que fornecem opções para os proprietários de sites controlarem as variáveis do ambiente do servidor e outros parâmetros para aprimorar a funcionalidade de seus sites. Esses arquivos podem estar presentes em qualquer diretório na árvore de diretórios do site e fornecem recursos para o diretório, arquivos e pastas dentro dele.

Quais são esses recursos? Bem, são as diretrizes do servidor, ou seja, as linhas que instruem o servidor a realizar uma tarefa específica, e essas diretrizes se aplicam apenas aos arquivos e pastas dentro do diretório em que este arquivo está localizado. Esses arquivos são ocultos por padrão, pois todos os sistemas operacionais e os servidores web são configurados para ignorá-los por padrão, mas tornar os arquivos ocultos visíveis pode permitir ver este arquivo muito especial. O tipo de parâmetros que podem ser controlados é o tema de discussão das seções subsequentes.

Nota: Se o arquivo .htaccess estiver localizado no diretório /apache/home/www/Gunjit/, ele fornecerá diretivas para todos os arquivos e pastas nesse diretório, mas se este diretório contiver outra pasta chamada: /Gunjit/images/ que novamente tenha outro arquivo .htaccess, então as diretivas nesta pasta substituirão aquelas fornecidas pelo arquivo .htaccess principal (ou arquivo na pasta acima na hierarquia).

Servidor Apache e arquivos .htaccess

Apache HTTP Server, coloquialmente chamado de Apache, recebeu o nome de uma tribo nativa americana Apache para respeitar suas habilidades superiores em estratégia de guerra. Construído em C/C++ e XML, é um servidor web multiplataforma baseado no servidor NCSA HTTPd e desempenha um papel fundamental no crescimento e avanço da World Wide Web.

Mais comumente usado em UNIX, o Apache está disponível para uma ampla variedade de plataformas, incluindo FreeBSD, Linux, Windows, Mac OS, Novel Netware etc. Em 2009, o Apache se tornou o primeiro servidor a atender a mais de 100 milhões de sites.

O servidor Apache tem um arquivo .htaccess por usuário no diretório www/. Embora esses arquivos sejam ocultos, eles podem ser tornados visíveis, se necessário. No diretório www/, existem várias pastas, cada uma relacionada a um site nomeado com o nome do usuário ou proprietário. Além disso, você pode ter um arquivo .htaccess em cada pasta que configura os arquivos nessa pasta, conforme indicado acima.

Como configurar o arquivo htaccess no servidor Apache é o seguinte…

Configuração no Servidor Apache

Podem ocorrer dois casos:

Hospedando o site em seu próprio servidor

Neste caso, se os arquivos .htaccess não estiverem habilitados, você pode habilitar os arquivos .htaccess simplesmente indo para o httpd.conf (Arquivo de configuração padrão para o Apache HTTP Daemon) e encontrando a seção <Directories>.

<Directory "/var/www/htdocs">

E localize a linha que diz…

AllowOverride None 

E corrija para.

AllowOverride All

Agora, ao reiniciar o Apache, o .htaccess funcionará.

Hospedagem de site em diferentes servidores de provedores de hospedagem

Neste caso, é melhor consultar o administrador de hospedagem se eles permitem acesso aos arquivos .htaccess.

25 ‘Truques de ‘.htaccess’ do Servidor Web Apache para Websites

1. Como habilitar mod_rewrite no arquivo .htaccess

A opção mod_rewrite permite que você use redirecionamentos e oculte sua URL real redirecionando para outra URL. Esta opção pode ser muito útil, permitindo que você substitua URLs longos e extensos por URLs curtos e fáceis de lembrar.

Para permitir o mod_rewrite, basta adicionar a seguinte linha como primeira linha do seu arquivo .htaccess.

Options +FollowSymLinks

Esta opção permite que você siga links simbólicos e, assim, habilite a opção mod_rewrite no site. A substituição da URL por uma curta e concisa é apresentada mais adiante.

2. Como Permitir ou Negar Acesso a Websites

O arquivo .htaccess pode permitir ou negar acesso a um site, pasta ou arquivos no diretório em que está localizado, usando as palavras-chave order, allow e deny.

Permitindo acesso apenas ao IP 192.168.3.1
Order Allow, Deny
Deny from All
Allow from 192.168.3.1

OR

Order Allow, Deny
Allow from 192.168.3.1

A palavra-chave Ordem aqui especifica a ordem na qual o acesso permitir, negar seria processado. Para a declaração ‘Ordem‘ acima, as declarações de Permitir seriam processadas primeiro e depois as declarações de negar seriam processadas.

Negar acesso a apenas um Endereço IP

As linhas abaixo fornecem os meios para permitir o acesso ao site para todos os usuários, exceto um com o Endereço IP: 192.168.3.1.

rder Allow, Deny
Deny from 192.168.3.1
Allow from All

OR


Order Deny, Allow
Deny from 192.168.3.1

3. Gerar documentos de erro do Apache para diferentes códigos de erro.

Usando algumas linhas simples, podemos corrigir o documento de erro que é executado em diferentes códigos de erro gerados pelo servidor quando o usuário/cliente solicita uma página não disponível no site, como a maioria de nós teria visto a página ‘404 Página não encontrada‘ em seu navegador da web. Os arquivos ‘.htaccess‘ especificam qual ação tomar em caso de tais condições de erro.

Para fazer isso, as seguintes linhas precisam ser adicionadas aos arquivos ‘.htaccess‘:

ErrorDocument <error-code> <path-of-document/string-representing-html-file-content>

ErrorDocument‘ é uma palavra-chave, o código de erro pode ser qualquer um dos 401, 403, 404, 500 ou qualquer código de erro válido e por último, ‘caminho-do-documento’ representa o caminho na máquina local (caso esteja usando seu próprio servidor local) ou no servidor (caso esteja usando o servidor de outra pessoa para hospedar seu site).

Exemplo:
ErrorDocument 404 /error-docs/error-404.html

A linha acima define o documento ‘erro-404.html‘ localizado na pasta error-docs para ser exibido no caso de o servidor relatar o erro 404 para qualquer solicitação inválida de página pelo cliente.

rrorDocument 404 "<html><head><title>404 Page not found</title></head><body><p>The page you request is not present. Check the URL you have typed</p></body></html>"

A representação acima também está correta, que coloca a string representando um arquivo html comum.

4. Configurando/Desconfigurando variáveis de ambiente do servidor Apache

No arquivo .htaccess você pode configurar ou desconfigurar as variáveis de ambiente globais que o servidor permite serem modificadas pelos proprietários dos sites. Para configurar ou desconfigurar as variáveis de ambiente, você precisa adicionar as seguintes linhas aos seus arquivos .htaccess.

Configurando as variáveis de ambiente
SetEnv OWNER “Gunjit Khera”
Desconfigurando as variáveis de ambiente
UnsetEnv OWNER

5. Definindo diferentes tipos MIME para arquivos

MIME (Extensões Multimídia de Internet Multifuncionais) são os tipos reconhecidos pelo navegador por padrão ao executar qualquer página da web. Você pode definir tipos MIME para o seu site em arquivos .htaccess, para que diferentes tipos de arquivos definidos por você possam ser reconhecidos e executados pelo servidor.

<IfModule mod_mime.c>
	AddType	application/javascript		js
	AddType application/x-font-ttf		ttf ttc
</IfModule>

Aqui, mod_mime.c é o módulo para controlar definições de diferentes tipos MIME e se você tiver esse módulo instalado no seu sistema, poderá usá-lo para definir diferentes tipos MIME para diferentes extensões usadas em seu site, para que o servidor possa entendê-los.

6. Como limitar o tamanho de uploads e downloads no Apache

Os arquivos .htaccess permitem que você controle a quantidade de dados sendo enviados ou baixados por um cliente específico do seu site. Para isso, basta adicionar as seguintes linhas ao seu arquivo .htaccess:

php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200

As linhas acima definem o tamanho máximo de upload, o tamanho máximo dos dados sendo postados, o tempo máximo de execução, ou seja, o tempo máximo que um usuário tem permissão para executar um site em sua máquina local, e a restrição máxima de tempo dentro do tempo de entrada.

Source:
https://www.tecmint.com/apache-htaccess-tricks/