gototopgototop
Joomla Security - Joomla e segurança (Artigo 11) PDF Imprimir E-mail

joomlaseguroO CMS Joomla fornece todos os requisitos de segurança, por isso mesmo uma instalação padrão será bastante segura. No entanto, há uma série de ajustes finos que você pode fazer para reforçar a segurança de seu projeto em joomla, além de hospedar o mesmo em um HOST idôneo. Novos problemas de segurança surgem o tempo todo com "crackers" concebendo novos métodos de violação de segurança. Você deve sempre manter o seu joomla atualizado para a versão mais recente disponível.

O melhor método para ficar informado sobre as questões de segurança é inscrever-se em grupos voltados a assuntos sobre segurança e Joomla. Você receberá e-mails relacionados com informações de segurança e de quaisquer indicações que requerem atenção especial. Para se inscrever, pesquise na web (no caso do local tenha mudado) ou acesse o seguinte tópico do fórum oficial do Joomla: http://forum.joomla.org/index.php/topic,125221.0.html

Delete os arquivos de instalação

Tenha certeza de excluir, depois de ter concluído a instalação, o diretório /installation e todos os arquivos contidos nele. Se um hacker conseguir acesso a este diretório e reativar o processo de instalação em um servidor existente, o mesmo terá acesso a todos os dados utilizados por você: host, usuário e senha do banco de dados por exemplo. Para certificar-se que isso não ocorra em circunstância alguma, esteja certo de que o diretório e arquivos existentes em /installation foram removidos do seu servidor web.

Aumente a segurança do Joomla

Muitas pessoas me perguntam como podem tornar os seus websites em Joomla mais seguros?

Abaixo listarei alguns pontos fundamentais e outros desejáveis à melhor performance do Joomla, em relação a segurança.

  1. Hospede seu website em provedores idôneos. Fuja dos HOSTS muitos baratos pois posso afirmar, categoricamente, que os mesmos estão utilizando softwares desatualizados e muitas vezes não possuem pessoas qualificadas para gerenciar um servidor web.

    - Eu indico a LOCAWEB ou KINGHOST para hospedagem.

    (*) que fique bem claro que não tenho nenhuma ligação com as empresas citadas e não ganho nada indicando as mesmas.  O Joomla Brasília está hospedado na LOCAWEB e a maioria dos websites de meus clientes, inclusive o meu particular, está hospedado na KINGHOST. Indico as duas empresas, por acreditar serem as melhores nacionais para o seu projeto, baseado em minha experiência com várias empresas de hospedagem.
  2. Uma vez hospedado, é fundamental que você tome algumas precauções para manter o seu website seguro:
  • Troque o usuário padrão do Joomla (admin), por outro qualquer e atribua-lhe uma senha forte;
  • Evite instalar extensões pouco conhecidas e utilizadas;
  • Diretórios devem possuir permissão (0755) e arquivos (0644). Caso não entenda o que quero dizer, contrate um profissional para desenvolver seu projeto;
  • Desabilite o relatório de erros pois eles pesam o seu website e mostram aos possíveis invasores, as falhas de segurança do seu website. Para desabilitar o relatório basta seguir a seguinte sequência: Configurações Globais - Sistema - Relatório de Erros -> nenhum
  • Renomeie e mova o arquivo configuration.php para um novo diretório.

    Exemplo:

    1. Renomeie o arquivo configuration.php que está na raiz do website, para config.conf
    2. Crie um diretório config e mova o arquivo para este diretório
    3. Com o bloco de notas aberto, digite o script abaixo e salve, na raiz do seu website, como configuration.php
      script php novo configig
  • Faça backup regularmente de seu website. Existem excelentes extensões com esta finalidade
  • Mantenha suas extensões atualizadas
  • Mantenha sua versão do Joomla atualizada
  • Mude o prefixo das tabelas do Joomla

Editor HTML do Joomla

Se você permitir que usuários enviem conteúdo para seu website, existe um grande potencial de alguém usar uma conta para atacar o seu sistema através do e ataque XSS, conforme descrito anteriormente no artigo sobre "cross-site scripting (XSS)." Certifique-se de limitar a capacidade de acesso dos editores a área disponível para usuários contribuintes.

Através de Extensões->Gerenciamento de Plugins, você pode acessar os parâmetros para os editores de texto utilizados pelos joomla. Estes editores quase sempre contêm funcionalidades automáticas que permitem a remoção de conteúdo potencialmente perigoso a partir conteúdo enviado pelo usuário.

O editor TinyMCE, editor de texto padrão do Joomla, pode minimizar os riscos de segurança encontrados em artigos através do "código limpeza no salvamento" e "Código limpeza na inicialização". Por padrão, estão ligados e você deve verificar a sua configuração, caso esteja desligado, você só precisa de ligar a opção de inicialização se você acredita que possa existir código impuro nos artigos existentes na base de dados.

Para configurá-lo siga: Extensões -> Administrar Plugins -> Clique no nome Editor - TinyMCE 2.0 e em parâmetros -> Limpar Código na inicialização (ativado) e Limpar Código no salvamento (sempre)


Existem certas condições em que a função do código de limpeza irá impedir que você faça certas operações. Por exemplo: (a inserção de um vídeo do You Tube em um artigo) porque ele acha que a função entende que o código gerado é perigoso. Ao invés de desativar a opção, selecione a opção Não Editor em configuração global e inclua o conteúdo diretamente no bloco de notas. Lembre-se de fazer esta alteração quando for editar os artigos que têm esse conteúdo.


Uma configuração mais radical a ser feita no editor de texto tinyMCE é proibir a anexação de arquivos potencialmente perigosos como HTML por exemplo. Por padrão, apenas applet está inscrito como arquivo proibido. Para maior segurança, você poderia considerar a definição da lista a objeto, applet e iframe, que irá proibir quase todos os tipos de elementos que poderiam ser utilizados para ataques XSS, entre outras coisas. Claro, que também irá parar de adicionar conteúdo dinâmico enviado por usuários como animação flash e outro conteúdo dinâmico.

Se um hacker conseguir executar diretamente um arquivo PHP estando fora do sistema, todos os tipos de ataques serão é possíveis. Se você está desenvolvendo novas extensões (templates, módulos, componentes ou plug-ins), adicione o comando abaixo, na primeira linha:

defined( ' _JEXEC ' ) or die ( 'Restricted access' );

Se o parâmetro _JEXEC não é definido (significando que o joomla não está executando o processo), a execução do código termina. Mesmo uma extensão primitiva de teste deve incluir a linha apenas para o caso de ser deixada instalada no servidor e esquecida. Caso seja encontrada mais tarde por um hacker ela será explorada.


Desenvolvimento e Teste


Se você estiver implantando uma extensão em joomla, você deve ser capaz de testar as configurações e extensões em um sistema seguro. Este teste deve ser feito em todos os estágios do desenvolvimento no servidor. Os estágios de desenvolvimento no servidor podem ser bastante inseguros e incluir todos os tipos de extensões e código.

Em um servidor de teste a segurança é ainda mais importante se você estiver desenvolvendo alguma extensão. Teste de exemplos de scripts e extensões são apenas dois dos itens que você irá precisar executar quando estiver desenvolvendo, pois você poderá criar grandes oportunidades e portas para que um hacker entre em seu sistema. Os ataques ocorrem geralmente em um ponto mais fraco do sistema, e um sistema de desenvolvimento terá um grande número de pontos fracos.

Uma vez que o desenvolvimento esteja completo, você deve mover o sistema configurado para um servidor de produção. Você deve mover os arquivos de configuração do PHP e do Apache porque o servidor de produção deverá ter configurações deiferentes do servidor de testes. Quando certas partes da extensão que você desenvolveu tiverem uma interrupção no processamento, busque detectar e corrigir o problema em vez de desativar a configuração que gera o problema. Isto fará com que o seu código seja forte e corretamente implantado no Joomla.

Com este artigo terminamos uma coletânea de 11 (onze) artigos voltados para a segurança no Joomla. Muitos alunos e ex-alunos, me questionaram do por quê destes artigos? O que leva uma pessoa a escrever sobre coisas que poderiam ser utilizadas em benefício próprio e contra os concorrentes. Por quê ajudar de graça a quem não pediu e muitas vezes não quer saber?

Tenho um compromisso com o CMS Joomla e vê-lo constantemente difamado de forma equivocada por HOSTS e usuários inexperientes, deixa-me profundamente irritado. Quanto aos concorrentes, bem não tenho concorrentes, tenho parceiros que estão na luta e querem demonstrar o seu valor profissional e se utilizarem Joomla, melhor para eles, para o Joomla e para o Joomla Brasília. Afinal, quem irá prestar-lhes o devido suporte quando for preciso?

Artigo traduzido e adaptado por Júlio Coutinho. O original, está publicado no capítulo 14 do livro Professional Joomla - Programador para Programador, de Dan Rahmel.
  divulgue o artigo no orkut
Voltar

Your are currently browsing this site with Internet Explorer 6 (IE6).

Your current web browser must be updated to version 7 of Internet Explorer (IE7) to take advantage of all of template's capabilities.

Why should I upgrade to Internet Explorer 7? Microsoft has redesigned Internet Explorer from the ground up, with better security, new capabilities, and a whole new interface. Many changes resulted from the feedback of millions of users who tested prerelease versions of the new browser. The most compelling reason to upgrade is the improved security. The Internet of today is not the Internet of five years ago. There are dangers that simply didn't exist back in 2001, when Internet Explorer 6 was released to the world. Internet Explorer 7 makes surfing the web fundamentally safer by offering greater protection against viruses, spyware, and other online risks.

Get free downloads for Internet Explorer 7, including recommended updates as they become available. To download Internet Explorer 7 in the language of your choice, please visit the Internet Explorer 7 worldwide page.