Joomla - Possibilidades infinitas em CMS.
Felipe Perin
● AUV surveyor

● Consultor de Segurança em TI

● Desenvolvedor web

● Entusiasta em software livre

● Segurança em Redes de Computadores

● Redator do Pub & Comunic.




     E-mail: perin.ng@gmail.com
     Linkedin: http://br.linkedin.com/in/felipeperin
     Blog: http://www.itperin.blogspot.com.br
Joomla! (pronuncia-se djumla)



É um Sistema de gestão de conteúdos (Content Management
System - CMS).


Desenvolvido a partir do CMS Mambo.


É desenvolvido em PHP e pode ser executado no servidor
Web Apache ou IIS e base de dados MySQL.


Lançado em 16 de setembro de 2005 (6 anos).
Características principais
■ Código aberto (Licença GPL);

■ Arquivamento para conteúdo não utilizados (Lixeira);

■ Gerenciamento de banners;

■ Sistema de publicação para o conteúdo;

■ Sumário de conteúdo no formato RSS;

■ Busca otimizada (qualquer palavra registrada);

■ Frontend já traduzido em várias línguas;

■ Fácil instalação para novos templates, módulos e componentes;

■ Hierarquia para grupos de usuários;

■ Editor de conteúdo WYSIWYG;

■ Sistema de enquete simples (com acompanhamento de resultado em tempo real);
Quem utiliza o Joomla?
● El Villarreal CF (Equipe de Futebol 1º   ● Tribunal Superior da Austrália
  Divisão da Liga Espanhola)
                                           ● eBay
● Cidade do México (a segunda maior
  cidade do mundo.)                        ● Sony Pictures

● Jaguar (marca mundialmente famosa        ● MacDonald's
  de carros de luxo britânica.)
                                           ● Gorilla'z
● Governo da Grécia                        ● Groupama (empresa de seguros
                                             segundo maior da França e uma das
● Barnes & Noble (maior varejista de         maiores do mundo, com escritórios na
  livros nos Estados Unidos com mais         Europa e na Ásia)
  de 1300 lojas)
                                           ● Mais de 2900 sites do governo
● Torre Eiffel                               construído com Joomla!

● Ministério da Defesa do Reino Unido      ● E inúmeros sites não catalogados
                                             pelo site oficial.
● Danone
Primeiros Passos - Instalação
Verificação dos requisitos mínimos do sistema
Licença do software
Configuração do Banco de Dados
Configuração do FTP
Configuração Principal
Finalização
Página de Administração
Página Inicial com as principais funcionalidades
Organização
    de
  artigos
Estrutura
  dos
Módulos
Boas Práticas no Joomla

 _
| Se
|       (Nada funcionar)
| Então
|        {
|        Leia o Manual ( )
|        }
|_
Não use o prefixo jos_ como padrão
   das tabelas do Banco de Dados.
Muitos ataques de injeção SQL são baseados na suposição de
que as tabelas de seu banco de dados são denominados
"jos_".

Caso você tenha optado por usar o padrão "jos_", ele poderá
ser mudado com um simples script PHP.
Um usuário de banco de dados por
              instalação
Não use um mesmo usuário para vários banco de dados e
nunca use root como usuário de conexão.

Geralmente o usuário de conexão ao banco e o nome do
banco, são baseados no nome de seu domínio. Mas isto vai
depender do provedor de hospedagem.
Considere uma senha forte para a
      conexão ao banco de dados
Use uma senha longa e complicada para o acesso ao seu
banco de dados.

Hoje em dia é muito fácil de decifrar um hash MD5, base de
encriptação utilizada pelo Joomla (já foi quebrado) ou SHA1.

Inclusive existem aplicações web que ajudam nesse processo.

Se alguém começar a tentar quebrar a senha de acesso ao
banco de dados, por força bruta por exemplo, é só questão de
tempo até obter o sucesso. Uma boa forma de criar senhas
fortes é utilizar caracteres alfanuméricos e caracteres especiais
como @ # $ e etc...
Não instale o exemplo de conteúdo
O exemplo de conteúdo serve para que você se familiarize com
o Joomla.

Em produção, você não deve utilizá-los tendo em vista que são
fáceis de serem identificados pelos "exploits".

Além disso, você pode se esquecer de remover totalmente o
conteúdo de exemplo.
Desinstalar coisas que você não
                  precisa
Desinstale todas as extensões que você não irá utilizar em seu
projeto.

Desde os componentes do núcleo do Joomla até os templates
que estão sobrando.

Observe, por exemplo, que ao instalar o editor JCE você estará
reinstalando o editor WYSIWYG TinyMCE, pois ele funciona
encapsulado no JCE.

Joomla vem com o editor TinyMCE instalado como editor
padrão, então você terá duas instalações TinyMCE.
Desativar o registro / login
Se o seu website não terá conteúdo restrito ou cadastro de
usuários, desabilite o módulo Login form


              Desativar XML-RPC
 Desative o XML-RPC do servidor se você não precisa
 dele.
Excluir a conta de usuário padrão
O userid 62 e o nome de usuário "admin" presentes na
tabela #__users, representa uma fraqueza e devem ser
substituídos imediatamente após a publicação do website
na Internet.

Para tal, acesse o backend e crie um novo usuário com
perfil de superadministrador.
Depois, faça o login com o novo usuário e exclua o antigo
admin.

Lembre-se que o admin é o primeiro usuário a morrer em
qualquer sistema.
Ativar o (.htaccess)
O htaccess.txt está na raiz do seu website joomla e deve ser
renomeado para (.htaccess). Porém, alguns fatores devem
ser observados:

a) o (.) antes de um nome de arquivo, significa que o arquivo
é um arquivo oculto do GNU/LINUX. Logo, não irá funcionar o
MS Windows®.

b) o (.htaccess) é um arquivo extremamente perigoso e
alguns provedores simplesmente não permitem o envio do
mesmo, ou durante a atualização do apache, passam a
restringir seu uso.
Use url's amigáveis
Muitos "exploits" funcionam baseados em sniffs de robots
através das URLs dinâmicas do Joomla!.
Por exemplo, digamos que o componente (com_algumacoisa)
foi invadido e você está usando o mesmo em seu website.

O "exploit" irá buscar por com_algumacoisa em sua url e uma
vez achado, irá explorar as vulnerabilidades do mesmo para
invadir seu website.

O uso de Url's amigáveis além de ajudar sobremaneira na
indexação de seu website pelo google é uma excelente
prática de segurança.
Faça Backup de seu website
             regularmente
Se o provedor não faz backup para você, inclua uma rotina
em seu projeto.

Para provedores que permitem acesso via ssl você pode
agendar o backup no cron do servidor.

Não é possível? Use o Akeeba que é uma excelente
extensão para backup.

Inclusive, a versão paga possibilita o agendamento dos
mesmos.
Proteja o /administrador com
              medidas extras
Encapsule o /administrator de seu website usando um simples
plugin de segurança como o JSecure.

 70% das tentativas de ataque serão barradas pelo simples
fato de não ser encontrado o /administrator de seu website.
Dê as permissões corretas para
         arquivos e diretórios
A permissão dos diretórios de seu website devem estar
com 0755 e os arquivos com 0644.
Nunca, jamais, em hipótese alguma use 0777.

        Considere a instalação de
        extensões de segurança
Existem várias extensões voltadas a implementação de
segurança em seu website Joomla. Visite o JED, identifique-
as e faça os devidos testes.
Fundamentais: Akeeba, JSecure, Jpudateman e
Configuration Ecnrypt
Perguntas ?
Felipe Perin
● AUV surveyor

● Consultor de Segurança em TI

● Desenvolvedor web

● Entusiasta em software livre

● Segurança em Redes de Computadores

● Redator do Pub & Comunic.




     E-mail: perin.ng@gmail.com
     Linkedin: http://br.linkedin.com/in/felipeperin
     Blog: http://www.itperin.blogspot.com.br

Joomla possibilidades infinitas em CMS

  • 1.
    Joomla - Possibilidadesinfinitas em CMS.
  • 2.
    Felipe Perin ● AUVsurveyor ● Consultor de Segurança em TI ● Desenvolvedor web ● Entusiasta em software livre ● Segurança em Redes de Computadores ● Redator do Pub & Comunic. E-mail: perin.ng@gmail.com Linkedin: http://br.linkedin.com/in/felipeperin Blog: http://www.itperin.blogspot.com.br
  • 3.
    Joomla! (pronuncia-se djumla) Éum Sistema de gestão de conteúdos (Content Management System - CMS). Desenvolvido a partir do CMS Mambo. É desenvolvido em PHP e pode ser executado no servidor Web Apache ou IIS e base de dados MySQL. Lançado em 16 de setembro de 2005 (6 anos).
  • 4.
    Características principais ■ Códigoaberto (Licença GPL); ■ Arquivamento para conteúdo não utilizados (Lixeira); ■ Gerenciamento de banners; ■ Sistema de publicação para o conteúdo; ■ Sumário de conteúdo no formato RSS; ■ Busca otimizada (qualquer palavra registrada); ■ Frontend já traduzido em várias línguas; ■ Fácil instalação para novos templates, módulos e componentes; ■ Hierarquia para grupos de usuários; ■ Editor de conteúdo WYSIWYG; ■ Sistema de enquete simples (com acompanhamento de resultado em tempo real);
  • 5.
    Quem utiliza oJoomla? ● El Villarreal CF (Equipe de Futebol 1º ● Tribunal Superior da Austrália Divisão da Liga Espanhola) ● eBay ● Cidade do México (a segunda maior cidade do mundo.) ● Sony Pictures ● Jaguar (marca mundialmente famosa ● MacDonald's de carros de luxo britânica.) ● Gorilla'z ● Governo da Grécia ● Groupama (empresa de seguros segundo maior da França e uma das ● Barnes & Noble (maior varejista de maiores do mundo, com escritórios na livros nos Estados Unidos com mais Europa e na Ásia) de 1300 lojas) ● Mais de 2900 sites do governo ● Torre Eiffel construído com Joomla! ● Ministério da Defesa do Reino Unido ● E inúmeros sites não catalogados pelo site oficial. ● Danone
  • 6.
    Primeiros Passos -Instalação
  • 7.
    Verificação dos requisitosmínimos do sistema
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
    Página Inicial comas principais funcionalidades
  • 16.
    Organização de artigos
  • 17.
  • 22.
    Boas Práticas noJoomla _ | Se | (Nada funcionar) | Então | { | Leia o Manual ( ) | } |_
  • 23.
    Não use oprefixo jos_ como padrão das tabelas do Banco de Dados. Muitos ataques de injeção SQL são baseados na suposição de que as tabelas de seu banco de dados são denominados "jos_". Caso você tenha optado por usar o padrão "jos_", ele poderá ser mudado com um simples script PHP.
  • 24.
    Um usuário debanco de dados por instalação Não use um mesmo usuário para vários banco de dados e nunca use root como usuário de conexão. Geralmente o usuário de conexão ao banco e o nome do banco, são baseados no nome de seu domínio. Mas isto vai depender do provedor de hospedagem.
  • 25.
    Considere uma senhaforte para a conexão ao banco de dados Use uma senha longa e complicada para o acesso ao seu banco de dados. Hoje em dia é muito fácil de decifrar um hash MD5, base de encriptação utilizada pelo Joomla (já foi quebrado) ou SHA1. Inclusive existem aplicações web que ajudam nesse processo. Se alguém começar a tentar quebrar a senha de acesso ao banco de dados, por força bruta por exemplo, é só questão de tempo até obter o sucesso. Uma boa forma de criar senhas fortes é utilizar caracteres alfanuméricos e caracteres especiais como @ # $ e etc...
  • 26.
    Não instale oexemplo de conteúdo O exemplo de conteúdo serve para que você se familiarize com o Joomla. Em produção, você não deve utilizá-los tendo em vista que são fáceis de serem identificados pelos "exploits". Além disso, você pode se esquecer de remover totalmente o conteúdo de exemplo.
  • 27.
    Desinstalar coisas quevocê não precisa Desinstale todas as extensões que você não irá utilizar em seu projeto. Desde os componentes do núcleo do Joomla até os templates que estão sobrando. Observe, por exemplo, que ao instalar o editor JCE você estará reinstalando o editor WYSIWYG TinyMCE, pois ele funciona encapsulado no JCE. Joomla vem com o editor TinyMCE instalado como editor padrão, então você terá duas instalações TinyMCE.
  • 28.
    Desativar o registro/ login Se o seu website não terá conteúdo restrito ou cadastro de usuários, desabilite o módulo Login form Desativar XML-RPC Desative o XML-RPC do servidor se você não precisa dele.
  • 29.
    Excluir a contade usuário padrão O userid 62 e o nome de usuário "admin" presentes na tabela #__users, representa uma fraqueza e devem ser substituídos imediatamente após a publicação do website na Internet. Para tal, acesse o backend e crie um novo usuário com perfil de superadministrador. Depois, faça o login com o novo usuário e exclua o antigo admin. Lembre-se que o admin é o primeiro usuário a morrer em qualquer sistema.
  • 30.
    Ativar o (.htaccess) Ohtaccess.txt está na raiz do seu website joomla e deve ser renomeado para (.htaccess). Porém, alguns fatores devem ser observados: a) o (.) antes de um nome de arquivo, significa que o arquivo é um arquivo oculto do GNU/LINUX. Logo, não irá funcionar o MS Windows®. b) o (.htaccess) é um arquivo extremamente perigoso e alguns provedores simplesmente não permitem o envio do mesmo, ou durante a atualização do apache, passam a restringir seu uso.
  • 31.
    Use url's amigáveis Muitos"exploits" funcionam baseados em sniffs de robots através das URLs dinâmicas do Joomla!. Por exemplo, digamos que o componente (com_algumacoisa) foi invadido e você está usando o mesmo em seu website. O "exploit" irá buscar por com_algumacoisa em sua url e uma vez achado, irá explorar as vulnerabilidades do mesmo para invadir seu website. O uso de Url's amigáveis além de ajudar sobremaneira na indexação de seu website pelo google é uma excelente prática de segurança.
  • 32.
    Faça Backup deseu website regularmente Se o provedor não faz backup para você, inclua uma rotina em seu projeto. Para provedores que permitem acesso via ssl você pode agendar o backup no cron do servidor. Não é possível? Use o Akeeba que é uma excelente extensão para backup. Inclusive, a versão paga possibilita o agendamento dos mesmos.
  • 33.
    Proteja o /administradorcom medidas extras Encapsule o /administrator de seu website usando um simples plugin de segurança como o JSecure. 70% das tentativas de ataque serão barradas pelo simples fato de não ser encontrado o /administrator de seu website.
  • 34.
    Dê as permissõescorretas para arquivos e diretórios A permissão dos diretórios de seu website devem estar com 0755 e os arquivos com 0644. Nunca, jamais, em hipótese alguma use 0777. Considere a instalação de extensões de segurança Existem várias extensões voltadas a implementação de segurança em seu website Joomla. Visite o JED, identifique- as e faça os devidos testes. Fundamentais: Akeeba, JSecure, Jpudateman e Configuration Ecnrypt
  • 35.
  • 36.
    Felipe Perin ● AUVsurveyor ● Consultor de Segurança em TI ● Desenvolvedor web ● Entusiasta em software livre ● Segurança em Redes de Computadores ● Redator do Pub & Comunic. E-mail: perin.ng@gmail.com Linkedin: http://br.linkedin.com/in/felipeperin Blog: http://www.itperin.blogspot.com.br