terça-feira, 27 de dezembro de 2016

Segurança em páginas PHP

Uma preocupação que deve estar presente em todos os programadores Web é a segurança dos seus produtos.

Com este artigo iniciamos uma série de posts em que vamos explorar alguns problemas básicos de segurança relacionados com a injeção de instruções SQL em formulários web ou parâmetros da URL.

Serão apresentados exemplos de código com problemas de segurança e de como os evitar.

Então vamos começar por um simples formulário para login implementado com o seguinte código:





Neste exemplo o código verifica se foi devolvido mais do que um registo da base de dados, assumindo assim que as credenciais fornecidas estão corretas.

O maior erro envolve a concatenação dos valores recebidos do formulário com a instrução SQL, permitindo, por isso, que o utilizador manipule a instrução ao seu belo prazer.

Independentemente do nome de utilizador inserido basta escrever na palavra passe o seguinte texto para se optar a indicação de que o login foi concluído com sucesso: o' or 1=1 #

Com este texto a instrução SQL vai devolver sempre um registo pois 1 é igual a 1. O # no final permite ignorar o resto da instrução pois é o simbolo para comentários em MySQL.

A solução para este problema passa por utilizar parâmetros, preparando a instrução antes de a executar. Assim o seguinte código resolve este problema:





terça-feira, 14 de junho de 2016

Google OAuth 2.0 em ASPX

Neste artigo vamos explorar a identificação de utilizadores através de serviços externos à aplicação web, nomeadamente através de uma conta de utilizador Google.

Para desenvolver o site vamos utilizar o Visual Studio 2015 recorrendo à tecnologia Webforms ASPX e com a linguagem de programação C#.

O site vai incluir uma opção para registo do utilizador e outra para o login que permitirá o acesso a páginas privadas.

Começamos por criar um projeto no VS.

PacMan 3D

Neste artigo vamos fazer um jogo simples, o clássico Pacman em 3D. Para isso vamos utilizar o Unity 3D, claro.

Vamos começar por criar um projeto novo.

segunda-feira, 4 de abril de 2016

Entity Framework

Neste post vamos aprender a utilizar a framework entity para o desenvolvimento de automático das operações de inserção, remoção, atualização e consulta de uma tabela.

Começamos por criar um projeto web em MVC com o Visual Studio 2015.



sexta-feira, 25 de março de 2016

Jogos móveis == otimização

Fazer um jogo para plataformas móveis não é fácil, por isso é melhor pensar na otimização da aplicação desde o início.


Depois de decidir que ia fazer um jogo para plataformas móveis e de ter um estrutura simples a funcionar olhei para a performance (frames por segundo) e as coisas não estavam nada bonitas. Tinha um nível quase sem nada, para além de um terreno e o melhor que conseguia obter eram 8 frames por segundo.

Então tratei de pegar no saco de truques de otimização e comecei a testar:
- primeiro simplifiquei os modelos, menos vértices, menos arestas, menos faces, significa mais performance;
- depois alterei os shaders do Unity para mobile;
- como tinha um terreno decidi olhar para as opções deste e encontrei algumas opções interessantes, como:
  - pixel erro;
  - base map distance;
  - detail distance;
- também tenho uma luz (directional light) e alterei:
  - baking para baked;
  - shadows para hard shadows;

No código otimizei:
- concatenação de strings, nunca fazer sem um stringbuilder;
- chamadas a funções, evitar sempre que possível, especialmente na função update;
- substituir algumas funções por simples otimizações como a função Mathf.Abs que substitui por x = (x>=0 ? x : -x)

Depois destas pequenas alterações passei a ter 20 frames por segundo! Nada mau, especialmente tendo em conta que já não tenho um nível vazio.

Ainda existem algumas otimizações ao nível do motor de física, mas ficam para mais tarde.

sábado, 12 de março de 2016

Novo projeto em Unity 3D

Hoje vou apresentar o novo projeto que estou a desenvolver.

Com base no post que ensinou a criar um carro em Unity 3D estou a criar um jogo sobre carros ou melhor sobre transportes. A ideia é simples: o jogador começa com um carro e uma missão, quanto termina a missão recebe dinheiro para investir noutro veículo.

Aqui estão algumas imagens:

- o primeiro carro no Unity


- a criar o carro no blender

- a preparar o mapa UV

- bonito, não?

- uma roda

- a textura no Gimp

-a testar diferentes tipos de terreno, como por exemplo água

- e o código


quinta-feira, 25 de fevereiro de 2016

Jogo do Galo em Unity 3D

Neste post apresento um tutorial para fazer um simples jogo do galo em Unity 3D.

Veja o vídeo e faça download do projeto do GitHub.



Projeto no GitHub

segunda-feira, 22 de fevereiro de 2016

Vamos fazer um carro com o Unity 3D

Neste artigo vamos fazer um carro, simples, com o Unity 3D.

A ideia é utilizar o motor de física do Unity 3D para simular o comportamento do carro.

Os passos a seguir são:

[1] - Criar um projeto novo