Professional Documents
Culture Documents
Revista PHP Magazine PDF
Revista PHP Magazine PDF
sumrio
No esquecer PHP-GTK
Sombra no fundo
Da imagem SQL Injection
Arquitetura
editorial
Apresentao Caixa de Entrada
Equipe Chamadas
artigos
PHP e o Conhecimento Cientfico ao redor do mundo
por Leandro Schwarz
Protegendo cdigos em PHP-GTK
por Pablo Dall'Oglio
SQL Injection em PHP: vulnerabilidades e preveno
por Ismael Rocha
Desenvolvendo em trs camadas com PHP, MVC e AJAX
por Almir Neto e Otvio Calaa
Os nmeros do FISL 9.0
A equipe da PHP Magazine inicia esta edio pedindo desculpas pela demora na publicao deste exemplar. Os parti-
cipantes da produo da revista so voluntrios e, portanto, nem sempre dispem de tempo livre para trabalhar em prol
da comunidade. Nossa 5 edio vem acompanhada de uma grande novidade. Graas ao apoio do Instituto de Desen-
volvimento de Software Livre (IDSL www.idsl.org.br), conseguimos mudar para o domnio www.phpmagazine.org.br.
A partir de agora, o IDSL passa a nos apoiar institucionalmente, caracterizando ainda mais o nosso papel social.
Nesta edio contamos com artigos em trs reas distintas. Leandro Schwarz, que participou em todas as edies da
revista, apresenta um artigo sobre a linguagem PHP e sua expresso diante do conhecimento cientfico pelo mundo.
Nosso parceiro Pablo DallOglio, nos prestigia mais uma vez com um belo artigo sobre PHP-GTK, demonstrando como
aplicar segurana em seus aplicativos. Ismael Rocha tambm participa com um artigo sobre segurana, com vulnerabili-
dades e preveno de SQL Injection. Almir Neto e Otvio Calaa participaram com um artigo sobre arquitetura em trs
camadas. Nosso agradecimento a esses autores que dedicaram seu tempo para contribuir com a revista.
Agradecemos a vocs pelo apoio, pois este o nosso maior incentivo para trabalhar mais e mais. Vale lembrar que
nosso portal j est prximo de atingir 10.000 usurios, um grande marco para todos.
Gostaramos de registrar a participao e agradecer ao Helton Ritter, que nos ltimos meses se fez presente nas ati-
vidades da revista.
Editores
Flvio Zacharias Fagundes, zach@phpmagazine.org.br
Ricardo Arago, ricardoaragao@phpmagazine.org.br
Administrao
Flvio Zacharias Fagundes, zach@phpmagazine.org.br
Ricardo Arago, ricardoaragao@phpmagazine.org.br
Comercial
Flvio Zacharias Fagundes www.phpmagazine.org.br
Ricardo Arago
Projeto grfico
Flvio Zacharias Fagundes Comercial
Ricardo Arago comercial@phpmagazine.org.br
Sugesto anotada, Leandro. Este tema sempre do inte- Estamos sempre buscando pessoas interessadas em co-
resse de todos, mas infelizmente at o momento no foi laborar. Voc pode participar submetendo algum artigo
submetido para a revista. Aproveitamos a oportunidade de seu interesse ou integrando-se a nossa equipe de
para comunicar que iniciantes tambm podem contribuir colaboradores, atividade que deve ser assumida como
com artigos, pois nossa equipe est disposta a orient- um compromisso. Em breve estaremos disponibilizando
los na pesquisa e desenvolvimento do tema abordado. para todos os interessados um documento de diretrizes,
Acreditamos que a viso de um iniciante, bem como o onde ficar definida a forma de participao da equipe
empenho em publicar o trabalho e contribuir com a co- da revista.
munidade, servir de modelo a ser seguido pelos de-
mais. Interesse em participao
Estou interessado em ajudar a revista. Eu poderia escre-
Mais sugestes ver sobre integrao do Adobe Flex com o PHP. O que
Sou pesquisador na rea de percepo auditiva e udio acham?
digital. Tenho trabalhado com PHP h algum tempo e Ricardo Cerqueira :: Caruaru-PE
estou trabalhando com projetos na rea de percepo
auditiva e e-learning com aplicaes browser-based. Fica Estamos aguardando sua participao, Ricardo! E, como
a sugesto de um artigo sobre como construir aplicaes sempre, nos colocamos disposio para auxili-lo no
Web com PHP, usando mdulos e templates na forma que for necessrio Basta entrar em contato.
que o Joomla ou o PHPNuke fazem. Parabns pela revis-
ta!!! Elogios
Rael Toffolo Parabns a toda equipe pelo belo trabalho!
Raquel Dezidrio Souto
Agradecemos sua participao, Rael! Toda sugesto
bem-vinda. Na segunda edio apresentamos um artigo com grande satisfao que recebemos suas mensa-
sobre a utilizao do Mambo, um gerenciador de conte- gens de agradecimento e apoio. Para quem desconhece:
do muito semelhante ao Joomla. Que sua mensagem a Raquel participou da segunda edio da revista com o
sirva de incentivo para a submisso de um artigo relacio- artigo PHP nas Geocincias e, desde ento, tem acom-
panhado nosso trabalho.
PARTICIPE
Est disponvel a seo para inscries, garanta j sua participao.
Voc pode apoi-lo divulgando em seu site e obtendo um pequeno espao para sua logomarca no site do portal do
evento.
Verifique as formas de inscries, saiba mais clicando aqui.
Eventos
A PHP Magazine apia a iniciativa de eventos como cursos gratuitos, palestras e fruns. Para divulgar na revista, envie informa-
es sobre o evento para contato@phpmagazine.org.br , que teremos prazer em contribuir com a divulgao.
PHP e o
Conhecimento Cientfico
ao redor do mundo.
A linguagem PHP amplamente utilizada em scripts para fins comerciais. Usa-se no
desenvolvimento dos carrinhos de compras, das vitrines de lojas virtuais, dos stios de
leiles e similares. Atravs de tecnologias hbridas, como AJAX, tambm possvel a
sua utilizao como aplicaes de bate-papo, por exemplo, do servio de atendimento
ao cliente via Chat. Muito difundido tambm o uso da linguagem PHP em scripts de
fruns e listas de discusses; pouco se conhece, entretanto, sobre o uso da lingua-
gem PHP como ferramenta de auxlio difuso de pesquisas acadmicas. Sendo as-
sim, o artigo pretende um breve esclarecimento sobre o uso da linguagem para a di-
fuso da cincia e tecnologia no Brasil e no mundo.
Protegendo cdigos em
PHP
PHP--GTK
Este artigo apresenta algumas formas simples de proteger o acesso ao cdigo-fonte
de aplicaes desenvolvidas em PHP-GTK.
r o mtodo onClick().
O PHP uma linguagem que nasceu na Web e nes-
te ambiente que mais adotado. O ambiente Web re- A tarefa do mtodo onClick exibir uma janela de
gido pela arquitetura cliente-servidor, em que h o cdi- mensagem com o nome digitado pelo usurio.
go do programa interpretado pelo servidor e o resultado
de sua execuo. Normalmente nesse modelo, o resul- <?php
tando cdigo HTML para ser visualizado no navegador class Application extends GtkWindow
do cliente. Neste caso, a prpria arquitetura cliente- {
servidor impede o usurio de ter acesso ao cdigo-fonte private $nome;
do programa, a menos que a pessoa tenha acesso ao /*
* mtodo construtor
servidor da aplicao. * cria a janela e os campos
Quando desenvolvemos uma aplicao grfica em */
function __construct()
PHP-GTK, rodamos a aplicao de forma local, utilizando {
recursos da mquina cliente, da mesma forma que em parent::__construct();
aplicaes em Delphi ou Visual Basic. Mas, no caso do $this->set_title('Aplicao');
PHP-GTK, o cdigo da aplicao interpretado direta- // cria uma caixa vertical
mente pelo executvel do PHP. Desta forma, o cdigo- $vbox = new GtkVBox;
// campo para digitao do nome
fonte fica exposto ao cliente, caso ele queira investig-
$this->nome = new GtkEntry;
lo. // cria o boto
$botao = new GtkButton('Exibe');
O objetivo de se proteger um cdigo em PHP-GTK
// conecta o boto ao
pode ser comercial, impedindo que o cliente tenha aces- $botao->connect('clicked',
so indevido ao cdigo-fonte e realize cpias piratas, mas array($this, 'onClick'));
tambm pode evitar que um usurio curioso investigue // adiciona os campos na vbox
o cdigo do mesmo e interfira no seu funcionamento, $vbox->add($this->nome);
tomando conhecimento de senhas de acesso ao banco $vbox->add($botao);
// adiciona a vbox na janela
de dados, por exemplo. As tcnicas que iremos estudar $this->add($vbox);
se aplicam tanto para a utilizao com PHP-GTK, quanto }
para utilizao no desenvolvimento de uma aplicao /*
PHP Web. * mtodo onClick
* Exibe o nome digitado pelo usurio
*/
1. O programa function onClick()
{
Para demonstrar as tcnicas de proteo de cdigo,
$dlg =new GtkMessageDialog(null,
em primeiro lugar vamos construir uma pequena aplica- Gtk::DIALOG_MODAL,
o a ser protegida, chamada app.php. Gtk::MESSAGE_INFO, Gtk::BUTTONS_OK,
$this->nome->get_text());
A nossa aplicao de exemplo extremamente sim- $dlg->run();
ples. Ela est toda contida em uma classe chamada Ap- $dlg->destroy();
plication. A classe Application na verdade filha da clas- }
se GtkWindow, logo, pelo mecanismo de herana, ela }
uma janela. ?>
<?php
$code = file_get_contents('app.php');
Figura 1 - Aplicao de exemplo $code = substr(trim($code),6, -2);
$code = base64_encode($code);
Agora, para executar tal aplicao, teremos de escre- file_put_contents('compress.zlib://
app.php.cri', $code);
ver um segundo programa para incluir a classe ?>
app.php e, ento, instanciar um objeto desta classe e
executar seu mtodo show_all(), para exibir a janela. Agora, para podermos executar tal programa cripto-
grafado, temos de escrever outro programa. Este pro-
<?php grama ir ler o contedo do arquivo criptografado, cha-
// inclui a classe mado app.php.cri, descriptograf-lo e executar este
include_once 'app.php'; cdigo por meio da funo eval(). Aps, o funcionamen-
// instancia um objeto to do programa continua o mesmo.
$app=new Application;
// exibe a janela
$app->show_all(); <?php
Gtk::Main(); // inclui a classe criptografada
?> $code =
file_get_contents('compress.zlib://
app.php.cri');
2. Compactao eval(base64_decode($code));
// instancia um objeto
A forma mais simples de se proteger o cdigo de um
$app=new Application;
programa compactando-o. Este mecanismo protege o // exibe a janela
acesso ao programa de grande parte dos usurios, mas $app->show_all();
facilmente reversvel, tendo em vista que basta o usu- Gtk::Main();
rio final da aplicao descobrir que ele deve descom- ?>
pactar um arquivo para ter acesso ao seu cdigo-fonte. Voc deve ter percebido que as duas tcnicas de-
Para compactar a aplicao, iremos utilizar o aplicati- monstradas at aqui so bastante simples. Da mesma
vo GZ do Linux, que compacta o programa app.php, forma que so simples de utilizar so simples de serem
gerando um outro, chamado app.php.gz. desfeitas, uma vez que o usurio ter acesso ao cdigo-
# gzip app.php fonte que ir descriptografar e executar o cdigo fonte.
Desta forma, facilmente utilizamos um comando echo()
Agora, para utilizar o programa ao invs de simples- no lugar do eval() para exibirmos o cdigo-fonte em te-
mente executarmos o comando include_once sobre o la. Claro que nenhum usurio final faz isto, mas qualquer
arquivo compactado, precisamos indicar qual o wrapper desenvolvedor com conhecimentos bsicos em PHP pode
utilizado para sua interpretao. Neste caso, o wrapper fazer isto.
compress.zlib. O arquivo descompactado instantane-
amente e a classe fica disponvel. 4. bcompiler
<?php O bcompiler uma extenso do PHP que faz parte do
// inclui a classe compactada PECL (The PHP Extension Community Library), que um
include_once 'compress.zlib://app.php.gz'; repositrio de extenses comunitrias para PHP, escritas
// instancia um objeto em linguagem C. Funciona assim como o PEAR (PHP
$app=new Application; Extension and Application Repository), que um reposi-
// exibe a janela
$app->show_all(); trio de extenses escritas em PHP.
Gtk::Main(); O bcompiler foi escrito com o objetivo de codificar
?>
arquivos, classes ou funes por completo em uma apli-
cao proprietria.
3. Criptografia Simples
De acordo com o autor da bcompiler, Alan Knowles, a
Podemos melhorar um pouco mais o algoritmo anteri- utilizao da extenso pode melhorar o desempenho em
or, criptografando o cdigo da aplicao alm de com- at 30%, embora o cdigo codificado seja bem maior
pact-la. Para tal, iremos escrever um pequeno progra- em termos de tamanho fsico ocupado pelo arquivo em
if ( $linhas==0 )
{
echo "No foi possvel recuperar a not
cia informada!!";
}
else
Figura 1 - Formulrio de Login {
echo mysql_result
Observe que no campo senha informamos a seguin- ($consulta, 0, titulo)."<br><br>";
echo mysql_result
te instruo: ($consulta, 0, conteudo);
OR 1=1 echo mysql_result
($consulta, 0, autor)."<br><br>";
Da forma como os dados foram submetidos, a query }
montada dinamicamente no script acima, ficaria da se- ?>
guinte forma: Na figura 3, nosso script funcionando com uma requi-
SELECT * FROM users WHERE sio normal:
login_user='qualquercoisa' AND pass-
word_user=' ' or 1='1'
Dessa maneira, a afirmao acima verdadeira, pois
a consulta tenta encontrar algum registro se a condio
campo login_user for igual a qualquercoisa e pass-
word_user= ou 1 for igual a 1.
Da maneira como foi implementado o script, a auten-
ticao acontece a partir do momento em que a consulta
retorna alguma linha. Sendo assim, no caso mencionado,
todas as linhas da tabela users foram retornadas, o que,
conseqentemente, nos permitiu a autenticao na apli-
cao.
if ( !isset($_GET[id]) )
{
echo "A notcia a ser lida no foi inf
ormada!";
exit;
}
else Figura 4 Host, usurio e senha retornados
{
$id = $_GET[id];
Com a injeo da instruo acima, obtivemos como No script de notcias, o problema da injeo de ins-
resultado os campos table_name, table_schema, co- truo SQL seria resolvido facilmente apenas converten-
lumn_name do banco de dados information_schema. do o valor de $_GET[id] para um inteiro, usando a fun-
Verificamos que existe uma base de dados chamada o intval(). No caso, o PHP ao converter 1 UNION ...
helpdesk, uma tabela chamada tickets_up e um campo retornaria apenas 1. No exemplo de autenticao, caso o
chamado tamanho_anexo. Um atacante poderia facil- sistema de senhas da aplicao, por exemplo, permitisse
mente montar o desenho de todos os bancos de dados apenas nmeros e letras, poderia-se utilizar expresso
em que o usurio da aplicao conecta do SGDB possui regular para checar de os dados fornecidos. Funes
permisso e, conseqentemente, ler as informaes con- como preg_match(), strlen(), intval(), intfloat(), dentre
tidas nessas bases aps o conhecimento do nome das outras, so bastante teis no auxlio da validao dos
tabelas e campos. dados.
3. Medidas preventivas
3.2 Prepared statements (medida eficaz
H diversas formas de se prevenir contra a injeo de contra SQL Injection)
comandos SQL. Pode-se utilizar desde recursos da pr-
pria engine PHP, como magic_quotes_gpc (em alguns Prepared statement a habilidade de definir uma
casos), at o uso funes diversas como escape de da- consulta uma vez e execut-la diversas vezes com dife-
dos (mysql_real_scape_string, addslashes), alm das rentes parmetros. Sua principal funo separar a lgi-
prepared statements. ca da consulta SQL dos dados recebidos para a monta-
gem da query dinamicamente. Sendo assim, a nossa
query do script de autenticao ficaria o como:
<?php
//Script:artigo1.php (Script de autenticao)
$login = $_POST['login'];
$senha = $_POST['senha'];
Ismael Rocha - ismaelrg@gmail.com
//Instancia objeto para conexo com banco
$bd = new mysqli
Graduando em Sistemas de Informao pela Grupo
(localhost , user_ismael, ismael, teste Anhaguera, atua h mais de 5 anos na rea de de-
); senvolvimento de sistemas em diversas linguagens.
Atualmente, trabalha com segurana da informao
$query = "SELECT * FROM users WHERE login_
user=? AND password_user=?";
$stm->store_result();
$linhas = $stm->num_rows;
if ($linhas > 0)
{
echo "Seja bem-vindo!!";
}
else
{
echo "Login e/ou senha invalidos!!";
}
?>
Consideraes finais
Criando Aplicaes Grficas com PHP
inegvel o poder de destruio de um ataque bem
sucedido de SQL Injection. Como visto, um atacante po-
de burlar um sistema de login, obter dados de diversos
databases do SGDB, bem como ler arquivos de sistema,
4. View
A View, ou camada de viso, a parte da aplicao
que comunica e interage com o usurio final, ou seja,
uma interface com ele. nela que so implementadas a
usabilidade, a interatividade e o layout visual, incluindo a
linguagem de estilo (CSS), a linguagem de marcao
(HTML) e a linguagem de programao cliente
(JavaScript).
Quando o Model termina de fazer o processamento
dos dados que sero apresentados ao usurio, envia-os
ao controller juntamente com qual view ser usada. Com
isso, o controller joga o fluxo para a view que transfor- Figura 4 Fluxo na Web sem requisio assncrona
ma esses dados em informao para o usurio.
notvel que dessa maneira a camada de viso qua-
se no contm cdigo PHP, apenas as variveis geradas
no Model e algum lao de repetio, em listagens. Mas
podemos abstrair ainda mais a linguagem PHP da cama-
da de viso utilizando templates.
Os templates so modelos, sem contedo, que pos-
suem a apresentao visual de aplicaes dinmicas.
Para suprir a pequena necessidade de linguagem no
visual (PHP) da view, muitos sistemas de templates utili-
zam uma linguagem prpria para manipular a exibio
dos dados provindos do servidor. Como exemplo, pode-
se citar o Smarty, o sistema de templates mais tradicio-
Figura 5 Fluxo na Web com requisio assncrona
nal para PHP.
Independente das implementaes contidas na view, Ao contrrio do que feito normalmente, quando
importante observarmos que com o MVC a camada de utilizamos requisio assncrona, uma mesma pgina
viso fica to bem separada que pode ser desenvolvida consegue fazer vrias requisies. Isso nos fornece di-
inteiramente por um designer, que no entende de PHP. versas vantagens, como a reduo do trfego na rede e
Ou, ainda, podemos desenvolver duas camadas de viso a maior transparncia para o usurio, tornando o siste-
para uma mesma aplicao: a Web e a Desktop ma semelhante a uma aplicao Desktop.
(utilizando PHP-GTK), tornando a aplicao ainda mais No AJAX a requisio feita atravs do Javascript
portvel. para um XML que se encontra no servidor. Quando usa-
7. Fluxo da Aplicao
Na figura seguinte, tem-se o fluxo completo dentre as
camadas na execuo normal da aplicao utilizando
Almir Neto - almirneto@gmail.com
MVC.
Almir Neto desenvolvedor da HP Transportes e
um entusiasta do PHP + MVC. Foi palestrante no
PHP Conference Brasil 2007 alm de ter ministrado
palestras e mini-cursos no III FGSL e IV FLISOL-GO.
edio 02 - maro/2007
Segunda edio com um acervo maior de artigos. Nesta edio so apresentados al-
guns nmeros e comentrios da repercusso do projeto. Os artigos abordam desde
CMS, camadas de persistncia at uma avaliao de frameworks. Ao final, Via6 e Rec6
so apresentados como exemplos de cases de sucesso PHP.
edio 03 - junho/2007
A terceira edio surge com um pequeno atraso devido cobertura de dois eventos.
Nesta edio so apresentados alguns nmeros e comentrios da repercusso do 1 PHP
Road Show e do FISL, em sua 8a edio. Os artigos abordam desde LCMS, segurana,
sugestes de codificao at uma ferramenta para desenvolvimento de projetos PHP. A
equipe apresenta um pequeno tour em trs IDEs conhecidas da comunidade.
edio 04 - maro/2008
Nesta edio, selecionamos 7 artigos para leitores de todos os nveis. Os artigos abor-
dam documentao de cdigo fonte, recursos de linha de comando, imagens e gera-
o de planilhas em excel. Na categoria segurana, artigos sobre autenticao de web-
mail e SMTP Injection.
www.phpmagazine.org.br
Os nmeros do
FISL 9.0
Nesta seo apresentamos alguns nmeros do frum que a cada ano obtm mais ex-
presso dentre as diversas comunidades de tecnologia.
verno do Paran; Companhia de Processamento de Da-
O evento reuniu mais de 7,4 mil participantes de 21
dos do Estado do Rio Grande do Sul (PROCERGS); Sindi-
pases no Centro de Eventos da PUCRS, o maior pblico
cato das Empresas de Informtica do Rio Grande do Sul
desde 2000, quando foi realizado o primeiro fisl. Nos trs
(SEPRORGS);
dias do evento houve debates, palestras, troca de infor-
maes e experincias, entre grupos de usurios, desen- O fisl contou com apoio das empresas: Baguete; A
volvedores, empresas pblicas e privadas que compare- Rede; Instituto Nokia de Tecnologia (INdT); Associao
ceram como participantes, expositores ou patrocinado- dos Jovens Empresrios de Porto Alegre (AJE); Sindicato
res. Foram 257 palestras, com nomes nacionais e inter- dos Bancrios; Instituto Projetos Pesquisas; Tangalo-
nacionais, que lotaram todas as oito salas destinadas aos mango; e Centro de Processamento de Dados (CPD) da
encontros. Universidade Federal do RS (UFRGS).
Participaram da Mostra de Solues as empresas: Solis
Para a coordenao do fisl9.0, esta edio com pbli-
Cooperativa de Solues Livres; Livraria Tempo Real In-
co recorde mostra a importncia que o software livre
formtica e Negcios; ZOPING; Trolltech ASA; Moradia e
vem conquistando no mundo todo e como o comparti-
Cidadania; Education Technolog; Red Hat Brasil; Socie-
lhamento de informaes pode beneficiar a toda a socie-
dade de Educao Ritter dos Reis; OpenS Tecnologia
dade. "Nosso desafio agora ser organizar o evento do
Ltda; Escola Alcides Maya; Linux Magazine; Unicamp;
ano que vem, quando pretendemos marcar de forma
Universidade Federal de Pernambuco; ThreePointsWeb;
ainda mais forte a presena do software livre na vida das
NetScience; ParanaCidade; BrOffice.org; LM2 Consulting;
pessoas, em funo dos 10 anos do fisl", diz Sady Jac-
PostgreSQL; DBSeller Servios de Informtica; Ory So-
ques, coordenador geral do Frum.
luctions Group; FAURGS; Centro de Empreendimentos
A meta da Associao Software Livre.Org, organiza- do Instituto de Informtica da UFRGS; CONEXUM; DFL;
dora do fisl, chegar a 10 mil participantes em 2009. SOL7; Laboratrio de Estudos Cognitivos (LEC); e Pro-
"Sabemos que um grande desafio, mas estamos nos jeto Germinar.
preparando para isso", afirma Jacques.
Alm do pblico recorde, o fisl9.0 teve a participao
Vamos aos nmeros
de empresas como Provncia Marista; UOL; Terra; Tele-
fnica; Google; Globo.com; Intel; Sun microsystems;
Yahoo Brasil; Comit Gestor da Internet no Brasil (CGI); Total de participantes: 7.417
Ncleo de Informao e Coordenao do Ponto br
(NIC.br); Companhia de Processamento de Dados do Pases: 21 (Alemanha, Argentina, Austrlia,
Municpio de Porto Alegre (PROCEMPA); Companhia de Blgica, Bolvia, Brasil, Canad, Chile, Cuba,
Informtica do Paran (CELEPAR); Empresa de Tecnolo- Espanha, Estados Unidos, Finlndia, Frana,
gia e Informaes da Previdncia Social (DATAPREV); Holanda, India, Inglaterra, Noruega, Paraguai,
Servio de Processamento de Dados (SERPRO); Caixa Portugal, Sua, Uruguai)
Econmica Federal; Banco do Brasil; Secretaria de Edu- Todos os estados brasileiros foram representa-
cao a Distncia (SEED); Ministrio da Cultura; Minist- dos no fisl.
rio da Cincia e Tecnologia; Ministrio da Educao; Mi-
nistrio do Planejamento, Oramento e Gesto; Propus; Perfil dos participantes: 24% so estudantes e
Locaweb; Servio Nacional de Aprendizagem Comercial 63% so profissionais e empresrios de TI;
(SENAC); Diginet; iSafe; Kroma Informtica; Logins; Pro-
Desk; ArgoHost.net; Brasil Telecom; Powerlogic; Minua- Patrocinadores: 41
no; Cobra Tecnologia; Casa Brasil; Petrobrs; Correios;
Ministrios das Comunicaes; Ministrio da Sade; Ins- Mostra de Solues: 28
tituto Nacional de Tecnologia da Informao (ITI); Go-
Palestrantes: 402
Fonte
http://fisl.softwarelivre.org/9.0/www/node/532
Sexta edio!
Participe da sexta edio da PHP Magazine.
Visite nosso portal e veja as informaes pa-
ra submisso de artigos para a revista. No
esquea o deadline: 25/09/2008.
www.phpmagazine.org.br