Planeta P@P http://planet.portugal-a-programar.org/ 2010-09-09T08:09:57Z Author Centro de Informação : Prioridades do Gmail http://scorch.isgreat.org/2010/09/prioridades-do-gmail/ 2010-09-08T15:58:09+00:00 Scorch Já à alguns dias que sabia desta nova funcionalidade do Gmail, mas só hoje tive o prazer de a experimentar. :D

Esta funcionalidade consiste em colocar as mensagens “mais importantes” primeiro, e depois as marcadas com uma estrela, e só a seguir as restantes mensagens.

O Gmail, para definir as mensagens mais importantes, verifica as que responde-mos mais vezes, as que vemos ou vão directas para a reciclagem, e se nós achar-mos que alguma coisa está mal, podemos marcar uma mensagem como Importante ou Não Importante. É também possível utilizar os filtros para ter-mos sempre a certeza de que certas mensagens são marcadas como importantes.

]]>
Visual Basic em Português : Microsoft WebDay 2010 em Lisboa e no Porto http://feedproxy.google.com/~r/vbtuga/~3/NOmnjp3Z8bQ/microsoft-webday-2010-em-lisboa-e-no.html 2010-09-04T10:45:26+00:00

]]>
Visual Basic em Português : MSDN Magazine - Setembro 2010 http://feedproxy.google.com/~r/vbtuga/~3/EdRVoDRcXKI/msdn-magazine-setembro-2010.html 2010-09-04T10:38:42+00:00

]]>
Centro de Informação : [PHP]Inclusão de Ficheiros http://scorch.isgreat.org/2010/09/php-inclusao-de-ficheiros/ 2010-09-02T15:09:29+00:00 Scorch Muitas aplicações, mesmo a maioria talvez, serve-se apenas de um ficheiro para ser acessível ao utilizador, normalmente o index.php. Através de QueryStrings verificam-se qual a acção que o utilizador quer, e a partir daí faz-se a inclusão dos ficheiros que se quer. O problema é se o utilizador, provavelmente com intenções de “rebentar” com o site, tenta aceder directamente ao ficheiro. A solução mais usada para este tipo de situações, é declarar uma constante no inicio do ficheiro index.php e no inicio de cada ficheiro que queremos verifica-mos se essa constante está definida. Se não estiver, mandamos o utilizador dar uma volta.

Portanto, no ficheiro principal coloca-mos isto:

<?php
define("APP_RUNNING, true");
?>

E em cada página que quiser-mos que não seja acessível directamente.

<?php
if (!defined("APP_RUNNING")) exit("A página não está disponível.");
?>
]]>
Centro de Informação : StatusNet – Bring the conversation to your domain http://scorch.isgreat.org/2010/08/statusnet/ 2010-08-30T22:13:50+00:00 Scorch
Este é um projecto OpenSource em PHP que pretende ser uma alternativa ao Twitter. A grande diferença é mesmo que é OpenSource, o que significa que qualquer um pode usa-lo no seu próprio servidor. É uma aplicação simples e poderosa, que permite:

  • Partilhar Ficheiros
  • Criação de Grupos
  • Seguir notícias populares
  • Adicionar plugins e aplicações
  • Personalizar os temas
  • Conectar a outras redes sociais
  • Aceder através o telémovel & computador
]]>
Carlos Gonçalves : Confissões Excêntricas de um Programador – Parte 4 http://cgoncalves.com/confissoes-excentricas-de-um-programador-parte-4/ 2010-08-29T04:26:43+00:00 Carlos Gonçalves Centro de Informação : Collabtive – The Web Based Project Management http://scorch.isgreat.org/2010/08/collabtive/ 2010-08-27T18:25:44+00:00 Scorch

O Collabtive é um software OpenSource em PHP que serve para gerir projectos. Podem ser adicionados vários projectos, e cada projecto pode ter várias metas. Cada meta pode ter vários items que podem ir sendo marcados com “Feitos”, e assim ir determinando a percentagem do projecto que já foi “terminada”.

Suporta também vários utilizadores, vários grupos e permissões, temas e traduções. A equipa de desenvolvimento está também a trabalhar num motor de plugins para o Collabtive, fazendo deste software uma boa escolha.

]]>
The Blog of a WebDeveloper : URL Rewriting contra ataques ?(!) http://feedproxy.google.com/~r/joaopedropereira/~3/YHL0i-SRQgg/ 2010-08-27T11:39:54+00:00 João Pedro Pereira

O URL Rewriting ganhou muitos adeptos quando surgiu a moda das SEO (Search Engine Optimization) e das USO (User Scan Optimization) de forma a tornar as ligações de mais fácil leitura e percepção do seu conteúdo quer para os Motores de Pesquisa quer para o scan que o nosso cérebro faz quando olha para uma ligação, e é normalmente com este intuito que é utilizado.

Contudo, é possível utilizar URL Rewriting para melhorar a segurança do seu site.

ATENÇÃO: Não é seguro confiar neste método para a obtenção de um site seguro, este é apenas um método possível de obfuscação, isto é, para tornar mais dificil de perceber onde poderão estar as falhas, principalmente para ferramentas automáticas de pentesting!

Imaginemos o seguinte URL:

http://exemplo.pt/pagina.php?id=13&titulo=AppVulneravel

Uma ferramenta automática de SQL Injection fazia parsing do URL e detectava dois parâmetros com dois valores: ( id => 13, titulo => ‘AppVulneravel’ ) .

Utilizando o seguinte ficheiro .htaccess:

# Turn on URL rewriting
RewriteEngine On
 
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
 
RewriteRule ^pagina/(.+)/(.+) pagina.php?id=$1&amp;titulo=$2 [PT,L]

Já podíamos chamar a mesma página da seguinte forma:

http://exemplo.pt/pagina/13/AppVulneravel

A mesma ferramenta automática mais dificilmente chegaria a verificar se 13 e AppVulneravel não eram directórios e estávamos a trabalhar no index desse directório.

Neste caso, um olhar sobre o URL e percebia-se que estava a ser usado URL Rewriting e podia-se tentar explorar vulnerabilidades a partir desses parâmetros e/ou configurado uma ferramenta para fazer os testes correctamente tendo em conta essa informação.

Mas um outro exemplo:

pagina.php

include($_GET['file'].'.php'); // ATENÇÃO: Este código é altamente inseguro! Só para fins demonstrativos!

Tirando partido do código anterior podíamos ter os seguintes URLs:

http://exemplo.pt/index

http://exemplo.pt/about

Sem conhecer o site em questão eu diria que teriam um ficheiro .htaccess semelhante a este:

# Turn on URL rewriting
RewriteEngine On
 
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
 
RewriteRule ^(home)$ index.php [PT,L]
RewriteRule ^(about)$ about.php [PT,L]

Contudo, neste contexto, seria algo mais como:

# Turn on URL rewriting
RewriteEngine On
 
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
 
RewriteRule ^(.+) pagina.php?file=$1 [PT,L]

Conclusão

Podemos ver que este método é excelente para dificultar a tarefa a script kiddies e crackers com ferramentas de crawling com pesquisa de vulnerabilidades, pode também diminuir os pontos de teste de possíveis atacantes, como é mostrado neste último exemplo. No entanto, é preciso ter em muita atenção o que já referi anteriormente: Não é seguro confiar neste método para a obtenção de um site seguro, este é apenas um método possível de obfuscação, isto é, para tornar mais dificil de perceber onde poderão estar as falhas, principalmente para ferramentas automáticas de pentesting!

]]>
Centro de Informação : iWisoft Free Video Converter http://scorch.isgreat.org/2010/08/iwisoft-free-video-converter/ 2010-08-26T14:46:13+00:00 Scorch
O iWisoft Free Video Converter permite converter vídeos de dezenas de formatos para dezenas de formatos. Podemos seleccionar vários filmes e converte-los todos ao mesmo tempo, ou até inclui-los todos no mesmo ficheiro. Para além disso, podemos editar o vídeo, podendo adicionar um logótipo, texto, cortar o vídeo, entre outras coisas muito úteis. E sim, tal como o nome indica, é gratuito.

]]>
The Blog of a WebDeveloper : Web Security – You’re Doing it WRONG http://feedproxy.google.com/~r/joaopedropereira/~3/r9wjkx4UCkY/ 2010-08-25T11:33:20+00:00 João Pedro Pereira

É triste o estado de descuido em que se encontram a maior parte dos WebSites nacionais… Não falo ao nível de organização, acessibilidade, usabilidade, design… mas sim ao nível da segurança, ou melhor, à falta dela…

Navegar por sites de grandes empresas, de universidades e respectivas faculdades, de sites governamentais, etc. aleatoriamente é quase como encontrar a cada clique um potencial alvo de ataque, quer ao site em si só para fazer defaces estúpidos, quer para atacar os seus visitantes ou para roubar dados e bases de dados importantes.

Porquê que isto acontece ? Porque é que não há cuidado em aplicar filtros nos formulários e nas querys que são feitas client-side  ? Existem já filtros desenvolvidos, open-source, que podiam ser aplicados rapidamente aquando do processo de desenvolvimento e que mais ou menos eficientes já eram algo melhor do que nada!! Não custava nem uma hora no desenvolvimento final de um website, e para empresas cujo negócio é o desenvolvimento de soluções web à medida para grandes entidades é inadmissível nunca se terem preocupado em criar uma solução por mais simples que fosse para aplicar a todos os seus trabalhos…

Depois há sempre os bons da fita que quando se apercebem de alguma coisa avisam os developers do site em questão e tentam ajudar. Quando isto acontece existem três tipos de empresas / pessoas:
- não ligam nenhum à sugestão dada e o site continua vulnerável
- ameaçam a pessoa que os está a alertar de lhes pôr um processo em cima (aqui ainda não percebi se é com medo que se peça dinheiro ou que fale com o cliente afectado)
- agradecem a sugestão, corrigem o erro e em alguns casos oferecem recompensas (dinheiro, serviços e até empregos)

Eu pessoalmente já tive estas experiências e desde que as minhas boas intenções foram levadas a mal e fui ameaçado por uma grande empresa portuguesa de desenvolvimento web que deixei de me interessar por ajudar.

Depois claro que aparecem sempre problemas com bases de dados com informações confidenciais roubadas, session hijacking, ou os famosos defaces.

Vamos lá pessoal, não é nada de impossível, é só preciso querer. Com o mínimo de cuidado podem ser evitadas muitas situações embaraçosas para vocês, para os vossos clientes e para o público alvo dos vossos clientes.

Imagem de http://www.fireblog.com/

]]>
Carlos Gonçalves : Guardar $_POST PHP como XML http://cgoncalves.com/guardar-post-php-como-xml/ 2010-08-23T06:29:07+00:00 Carlos Gonçalves Carlos Gonçalves : A Mediocridade Nunca Vence http://cgoncalves.com/a-mediocridade-nunca-vence/ 2010-08-20T06:00:45+00:00 Carlos Gonçalves Centro de Informação : Blog do PT-DigiArt http://scorch.isgreat.org/2010/08/pt-digiart-blog/ 2010-08-19T23:53:49+00:00 Scorch

O blog do PT-DigiArt, uma comunidade portuguesa de Design e Arte, foi inaugurado no dia 18 de Agosto de 2010. O blog abrange todas as áreas da Arte, mas em especial a Arte Digital. Para já, a equipa tem três membros, da qual eu faço parte, mas estamos sempre à procura de novos talentos, por isso, não hesites. Se tens o que é preciso nalguma área do Design, então candidata-te. Se não te queres comprometer, mas tens um artigo que gostavas de ver publicado no blog, envia-o pela página de contacto.

]]>
Carlos Gonçalves : As 7 Regras do Web Design http://cgoncalves.com/as-7-regras-do-web-design/ 2010-08-17T07:40:32+00:00 Carlos Gonçalves Blog do André : Erro “Headers already sent” desvendado http://softklin.hyperphp.com/blog/2010/08/erro-headers-already-sent-desvendado/ 2010-08-14T14:48:55+00:00 André