A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

Medidas de Segurança na programação Joomla

Sab

5

Jan

2008


20:46

(15 votos, média 4.80 de 5) 


Evitar XSS

XSS vem de Cross Site Scripting e significa executar scripts (por exemplo um Javascript) no browser do visitante. Cuidado para não usar echo em qualquer input de usuário que não tenha sido validado. Uma coisa do tipo

echo $_REQUEST[ 'valor' ];

é muito perigosa. Use mosGetParam ou JRequest::getVar para obter o valor porque estas funções já eliminam a maioria das tranqueiras que eventualmente podem estar sendo enviadas. Para garantir mais um pouco, antes de colocar alguma coisa na página, faça mais uma limpeza com

$valor = htmlspecialchars( $valor ); echo $valor;

Evitar register_globals

O register_globals é uma configuração do PHP. Quando register_globals está habilitado, o PHP exporta todos os $_GET, $_POST, $_COOKIE e algumas outras variáveis para o escopo global. Isto facilita muito a vida dos programadores, mas infelizmente também facilita a vida dos crackers. Se quisermos um site que tenha um mínimo de segurança, a primeira coisa a fazer é desligar o register_globals e aprender a se virar sem ele.

  • Ative as mesnagens de erro do PHP para que ele mostre as variáveis que estão sendo usadas sem terem sido inicializadas.
  • Desabilite o register_globals no arquivo php.ini
  • Desabilite RG_EMULATION (ponha valor 0) em globals.php. Este arquivo fica no diretório raiz do Joomla.

Se você não tiver acesso às configurações do PHP e o register_globals estiver ativado, entre em contato com seu serviço de hospedagem e peça para que o desabilitem. Se não for atendido, é melhor trocar de hospedagem do que expor seu site a riscos desnecessários smile

NÃO use:

echo $GLOBALS[ 'nomeVariável' ];

Troque por:

global $nomeVariável; echo $nomeVariável;

Checar privilégios de acesso

Controle com cuidado quem é quem no pedaço antes de autorizar uma query. O Joomla classifica os usuários em:

gid = 0     Não logado
gid = 1     Usuário registrado
gid = 2     Usuário especial

Para evitar que usuários sem os devidos direitos vejam determinadas informações, inclua uma pesquisa de privilégios nas queries. Por exemplo, no Joomla 1.0.x:

SELECT * FROM #__contact_details AS c LEFT JOIN #__categories AS cat ON cat.id = c.catid WHERE ( c.name LIKE '%$text%' ) AND c.published = 1 AND cat.published = 1 AND c.access <= $my->gid AND cat.access <= $my->gid

No Joomla 1.5 a mesma query seria:

// Inicializar variáveis como exemplo de como obter o usuário atual $app = & $this->getApplication(); $user = & $app->getUser(); SELECT * FROM #__contact_details AS c LEFT JOIN #__categories AS cat ON cat.id = c.catid WHERE ( c.name LIKE '%$text%' ) AND c.published = 1 AND cat.published = 1 AND c.access <= $user->get('gid') AND cat.access <= $user->get('gid')mfx broker отзывы трейдеровсайт посудылобановский супермаркет классcrm программасамые новыеникос ресторанлобановский обыск

Informações adicionais