Apache htaccess

748 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
748
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Apache htaccess

  1. 1. Apache – HTTP Server Project: Ficheiro .htaccess Quarta-feira, 07 de Abril de 2010 Trabalho elaborado por: Tiago Bem Nº8309 Vasco Silva Nº11782 Desenvolvimento de Aplicações WEB Mestrado em Engenharia Informática
  2. 2. APACHE – HTTP Server Project Ficheiro .htaccessCONTENTS1 Introdução ............................................................................................................................. 32 O Ficheiro .htaccess – O que é? ............................................................................................ 43 Autenticação e autorização ................................................................................................... 54 Mensagens de erro................................................................................................................ 75 Definir a página a ser carregada por omissão ....................................................................... 86 Redireccionamento ............................................................................................................... 97 Bloquear o acesso por Endereço IP ..................................................................................... 108 Bloquear o acesso a ficheiros .............................................................................................. 119 Bloquear a listagem de ficheiros ......................................................................................... 1210 Conclusão ............................................................................................................................ 13 2
  3. 3. APACHE – HTTP Server Project Ficheiro .htaccess1 INTRODUÇÃOEste trabalho enquadra-se no âmbito da disciplina de Desenvolvimento de Aplicações Webcoordenada pelo Prof. Doutor Carlos Costa.O trabalho tem como objectivo a explanação do ficheiro .htaccess de forma a enumerar todasas suas funcionalidades/potencialidades e expôr a sua configuração com exemplos práticos. 3
  4. 4. APACHE – HTTP Server Project Ficheiro .htaccess2 O FICHEIRO .HTACCESS – O QUE É?O ficheiro .htaccess é um ficheiro que permite definir um conjunto de parâmetros efuncionalidades no site(directoria e sub-directorias) onde este está localizado.Existem imensas utilidades na configuração deste ficheiro o que pode ser bastante útil paraquem desenvolve aplicações Web e que pretende necessita de alguma parametrização extra,para além da definidade globalmente no Apache.Todas as funcionalidades que este ficheiro disponibiliza, estão também disponíveis no ficheiroglobal de configurações do apache. Qualquer configuração que esteja definida no .htaccessprevalece sempre sobre o ficheiro global de configurações do apache. Na prática, o apachecarrega as configurações globais do apache, de seguida as do ficheiro .htaccess, fazendo umoverwrite em configurações que já tenham sido declaradas.Este ficheiro é normalmente utilizado em serviços de alojamento, em que devido a questõesóbvias de segurança, os utilizadores não tem acesso ao ficheiro global de configurações doapache, assim, através desta forma podem definir a configuração apenas no site em que temacesso. Ainda assim, é necessário que o ficheiro de configuração global do Apache permita quea utilização dos ficheiros .htaccess, para isso isso é utilizado o parâmetro AllowOverride. Apossiblidade da execução deste ficheiro tem custos em termos de performance e segurança.Em performance, pois o apache tem que fazer um carregamento de configurações extra porcada .htaccess existente, e em segurança pois com este ficheiro é dificil manter uma base deconfigurações homógenea em todo o servidor. Devido a estes aspectos, existem serviços dealojamento que não permitem a execução destes ficheiros.Nos casos em que podemos editar o ficheiro global de configurações do Apache, deve ser estea ser utilizado, uma vez que também nos permite aplicar diferentes configurações a diferentessites através da directiva <directory> </directory>, e evitar desta forma o uso dos ficheiros.htaccess. Desta forma ganhamos performance, segurança e facilidade de administração, vistoficar a administração centralizada num único ficheiro.Tal como já foi descrito acima, este ficheiro pode definir imensas funcionalidades. Foi feitauma selecção das mais usadas nestes ficheiros. Nos pontos seguintes estas são apresentadas esucintamente explicadas acompanhadas com um exemplo prático. As funcionalidadesseleccionadas foram: autenticação e autorização, mensagens de erro, página por omissão,redireccionamento, bloqueio de endereços IP, bloquio de acesso a ficheiros e bloqueio delistagem de ficheiros. 4
  5. 5. APACHE – HTTP Server Project Ficheiro .htaccess3 AUTENTICAÇÃO E AUTORIZAÇÃOHoje em dia existem inúmeras formas e mecanismos de autenticação para controlar os acessosa áreas restritas de sites. Através do ficheiro .htaccess podemos também criar áreas restritasem sites e gerir os respectivos acessos. As grandes vantagens comparando com outrosmecanismos, são: Este ser corrido ao nível do apache, não havendo assim a possibilidade de haver um buraco de segurança, e os conteúdos ficarem expostos; Nos casos em que apenas são alojados ficheiros “soltos” (apenas para download, sem qualquer página .html,.php,etc), não existe necessidade de criar um “mini site” apenas para efectuar a autenticação; A facilidade de implementação deste mecanismo – é feito apenas com algumas entradas no ficheiro .htacces, em conjunto com um ficheiro .htpasswd.A lista de utilizadores é guardada num ficheiro .htpasswd. O conteúdo do ficheiro é de umaentrada para cada utilizador no formato <user>:<password>.Exemplo prático:É utilizado o comando htpasswd para fazer a administração dos utilizadores.Para criar o ficheiro de passwords em /etc/.htpasswd com um utilizador – user1 é utilizado ocomando:htpasswd -c /etc/.htpasswd user1Este comando pede para inserir uma password(a password inserida foi:“user1”). É entãocriado o ficheiro com o conteúdo:user1:oKKfw4JJeeG4MNo ficheiro .htaccess é necessário associar o ficheiro .htpasswd a ser utilizado. É então criado oficheiro .htaccess com o conteúdo:AuthUserFile /etc/.htpasswdAuthType BasicAuthName "Autenticacao teste atraves de .htaccess para a cadeira deDAW"Require valid-userAuthUserFile: caminho para o ficheiro .htpasswd;AuthType: Tipo de autenticação a ser utilizada;AuthName: Mensagem a ser apresentada na janela de autenticação;Require valid-user: Qualquer utilizador no ficheiro .htpasswd poderá aceder ao site.Para adicionar utilizadores ao ficheiro .htpasswd é usado o comando: 5
  6. 6. APACHE – HTTP Server Project Ficheiro .htaccessroot@desktop:/var/www/daw# htpasswd -mb /etc/.htpasswd tiago tiagopwdroot@desktop:/var/www/daw# htpasswd -mb /etc/.htpasswd vasco vascopwdO conteúdo do ficheiro /etc/.htpasswd após a execução desttes comandos será:user1:oKKfw4JJeeG4Mtiago:$apr1$c3/xcxJn$NysAo.KY8A/PZtgPvAcE00vasco:$apr1$d3MaKNij$N48z8SnReNhBojfCwdLNa.Com a existência de vários utilizadores no ficheiro .htpasswd, podemos configurar para queapenas alguns possam efectuar login, ao invés do exemplo anterior em que todos poderiamefectuar. No exemplo abaixo, apenas os utilizadores vasco e tiago poderão efectuar login.AuthUserFile /etc/.htpasswdAuthType BasicAuthName "Autenticacao teste atraves de .htaccess para a cadeira deDAW"Require user vascoRequire user tiagoA autenticação através de um ficheiro .htpasswd é o mais utilizado com este mecanismo.Existe também a possiblidade de ligar a lista de utilizadores a uma base de dados, ou aosutilizadores do sistema, mas, torna-se mais complexo e nesse caso já é aconselhável utilizaroutros métodos. 6
  7. 7. APACHE – HTTP Server Project Ficheiro .htaccess4 MENSAGENS DE ERROAtravés do .htaccess é possível configurar as páginas de erro do servidor apache.Para isso é necessário que tenhamos uma noção dos erros possíveis quando tentamos acedera uma página e dos códigos que lhes estão associados.Os códigos mais utilizados são o 404 e o 500. O 404 é usado para quando uma página não éencontrada. O erro com o código 500 está associado a erros provenientes da execução descript internos.Também poderá ser útil a configuração da página com o erro 401 que é apresentada quando apágina precisa de autenticação para a sua visualização.Existem mais dois erros que também poderão ser configurados, o erro com o código 400 e oerro com o código 403. O erro 400 – Bad Request ocorre quando os clientes de alguma formatentam modificar o URL de acesso ou uso de scripts para tentar de alguma forma alterar ocomportamento normal da pagina. O erro 403 – Forbidden está associado ao facto de sequerer aceder a um ficheiro ou pasta do qual não tem permissões.Para configurar as páginas de erro basta acrescentar ao ficheiro .htaccess algumas linhas decódigo que de seguida serão mencionadas no exemplo prático. As mensagens que aparecemnão são mais do que um simples ficheiro HTML que pode ser configurado como pretender.Exemplo prático:Para configurar o erro com o código 400 basta inserir a seguinte linha dentro do ficheiro.htaccess:ErrorDocument 400 /errors/badrequest.htmlPrimeiro específica o tipo de erro que pretende e de seguida fornece o caminho para a páginade erro. Se quiser editar a forma como erro aparece basta editar o ficheiro .htmlcorrespondente ao código do erro e depois escrever o html que desejar.Para os outros tipos de erro as linhas a adicionar seriam:ErrorDocument 401 /errors/authreqd.htmlErrorDocument 403 /errors/forbid.htmlErrorDocument 404 /errors/notfound.htmlErrorDocument 500 /errors/serverr.html 7
  8. 8. APACHE – HTTP Server Project Ficheiro .htaccess5 DEFINIR A PÁGINA A SER CARREGADA POR OMISSÃOHabitualmente, quando inserimos um endereço no browser, que é um caminho/directoria, enão o destino final para o ficheiro, o servidor vai procurar por uma lista de ficheiros nessadirectoria, se encontrar algum, mostra esse ficheiro. Essa é a lista de ficheiros por omissão,normalmente é constituída por os seguintes ficheiros : index.html, index.htm, default.html...Nos casos em que queremos colocar uma página por omissão com um nome diferente doacimo referido, por exemplo index.php, torna-se chato ser necessário criar um index.html quereencaminhe para o index.php. Nestes casos, podemos alterar o ficheiro, ou a lista de ficheirosa carregar por omissão.O ficheiro .htaccess permite alterar a lista de ficheiros por omissão. Na execução, o servidor iráprocurar os ficheiros sequencialmente, o primeiro a ser encontrado na directoria, é o que éapresentado.Exemplo prático:DirectoryIndex firstIndex.html secondIndex.html daw.html 8
  9. 9. APACHE – HTTP Server Project Ficheiro .htaccess6 REDIRECCIONAMENTOExistem muitas formas de redireccionar páginas, pode ser feito através de javascript , http-equiv ou scripts no lado do servidor em PHP, Java, C# etc…O .htaccess também possibilita o redireccionamento de páginas e em certos casos até pode sermais simpático conseguindo-o fazer de uma forma muito simples.O que o .htaccess faz é usar o Redirect para verificar os pedidos a páginas ao servidor e se eleencontrar a página pedida redirecciona para a que for configurada.Exemplo prático:Linha a adicionar ao .htaccessRedirect /origem/origem.html http://site.com/destino/destino.htmlBasicamente, este procedimento passa por adicionar o comando Redirect com o caminho dapágina origem(que se pretende fazer o redireccionamento) e de seguida colocar caminho Webpara a página de destino. 9
  10. 10. APACHE – HTTP Server Project Ficheiro .htaccess7 BLOQUEAR O ACESSO POR ENDEREÇO IPO bloqueio de determinados endereços IP, é usado normalmente em duas situações, ouporque queremos realmente bloquear um IP (suspeita de hacking, troca de demasiadotráfego,endereço IP suspeito, etc...), ou então queremos apenas permitir uma lista de IPslimitada. Basicamente, a forma de efectuar esta configuração é: “Acedem todos exceptoexcepto estes” ou “Não acede ninguém excepto estes”. Abaixo, poderemos ver um exemplo decada.A entrada order, indica a ordem com que as regras são corridas. Não interessa a ordem porque elas aparecem no ficheiro mas sim a ordem definida na cláusula order. Se tivermos orderdeny allow, as regras de allow são prioritárias sobra as deny (pois são corridas depois, ficandoestas a prevalecer), caso tenhamos order allow deny, prevalecem as regras deny. O modo defuncionamento da entrada order é sempre este.Exemplo prático:A seguinte regra bloqueia o acesso a qualquer endereço IP excepto o da própria máquina -127.0.0.1:order deny,allowdeny from allallow from 127.0.0.1A seguinte regra bloqueia o acesso da própria máquina - 127.0.0.1:order allow,denyallow from alldeny from 127.0.0.1 10
  11. 11. APACHE – HTTP Server Project Ficheiro .htaccess8 BLOQUEAR O ACESSO A FICHEIROSConseguir evitar que certos ficheiros possam ser visíveis através do browser é sem dúvida umafuncionalidade muito útil. Se considerarmos que o ficheiro .htaccess por algum lapso estivercom permissões 755 ou 777, será possível a quem o tentar aceder ver a sua configuração eposteriormente o acesso a uma página por exemplo.O mesmo pode acontecer com outros ficheiros críticos em que o webmaster tem interesse emque ninguém lhes possa aceder.Exemplo prático:Linhas a adicionar ao .htaccess<Files .htaccess>order allow,denydeny from all</Files>No exemplo acima, podemos ver como bloquear o acesso ao ficheiro .htaccess. O mesmo podeser feito com os outros ficheiros basta alterar o nome do ficheiro. 11
  12. 12. APACHE – HTTP Server Project Ficheiro .htaccess9 BLOQUEAR A LISTAGEM DE FICHEIROSA possiblidade de listar as directorias é uma importante funcionalidade de um web server.Podemos querer permitir que se liste, ou não, os ficheiros consoante as situações. Porexemplo, se tivermos uma directoria, onde guardamos uma lista de ficheiros a partilhar, seráinteressante que seja possível listar todo o conteúdo dessa directoria. Numa outra situação emque o que temos alojado é um site com toda a sua estrutura, não queremos expôr todo o sitepor diversos motivos óbvios(segurança, cópia de conteúdos, etc...).As configurações do apache vem actualmente com a opção de listagem desactivada. Deseguida é apresentado como podemos activar ou desactivar esta opção através do ficheiro.htaccess.Exemplo prático:Activar a opção de listagem:Options +indexesDesactivar a opção de listagem:Options -indexesSe não pretendermos desactivar a listagem de todos os ficheiros, mas sim, apenas de algunspodemos indicar os que não queremos que sejam listados. No exemplo seguinte, todos osficheiros de extensão jpg e o ficheiro teste.html deixão de ser listados:IndexIgnore *.jpg teste.html 12
  13. 13. APACHE – HTTP Server Project Ficheiro .htaccess10 CONCLUSÃOPodemos concluir com este trabalho que o ficheiro .htaccess está integrado num interessantemecanismo do Apache, que possiblita ao utilizador sem acessos de administração do apache,mas com acesso de escrita ao seu site, fazer a configuração deste.Este mecanismo exige alguma organização da parte de quem utiliza os ficheiros .htaccess, poisse estes não foram utilizados devidamente podem criar alguma redudância e incoerências deconfiguração.É um ficheiro com grandes potencialidades, mas que deve ser definido com algum cuidadopara que não se torne um problema na configuração do web-server. 13

×