SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
UCB / Universa
           Lato Sensu – Sistemas Orientados a Objetos


                                      Alexandre Menezes
                                         Gisele Rodrigues




12/11/09                                                1
Análise Estática do Framework Demoiselle do
      Governo Federal com Ênfase em Segurança de
                      Aplicações Web




12/11/09                                             2
Agenda

    1. Introdução
    2. Segurança mais que necessidade
    3. Segurança no desenvolvimento de software
    4. Estudo de caso
    5. Conclusão




12/11/09                                          3
1. Introdução




12/11/09                   4
Dependência de Recursos Tecnológicos




12/11/09                                      5
Segurança da Informação

    Assegurar e proteger ativos;
    Mudança de Cultura e Paradigma;
    Integridade + Disponibilidade + Confidencialidade.




12/11/09                                                 6
2. Segurança mais que necessidade




12/11/09                                       7
Entidades de Segurança




12/11/09                        8
Total de Incidentes Reportados ao Cert.br (1999 - 2009)




12/11/09                                                  9
Fatores de Risco nos Sistemas Atuais

    Conectividade;
    Extensibilidade;
    Complexidade.




12/11/09                                                 10
Vulnerabilidades

                OWASP Top 10 - 2007
           A1             XSS
           A2             Injection Flaws
           A3             Malicious File Execution
           A4             Insecure Direct Object
           A5             CSRF
           A6             Information Leakage and
                          Improper Error Handling
           A7             Broken Authentication
                          and Session
                          Management
           A8             Insecure Cryptographic
           A9             Insecure
                          Communications
           A10            Failure to Restrict URL
                          Access




12/11/09                                                     11
Vulnerabilidades (Softwares)




12/11/09                             12
3. Segurança no Desenvolvimento de Software




12/11/09                                         13
Sistemas Seguros

    Secure by design;
    Secure by default;
    Secure by deployment.




12/11/09                                  14
Ferramentas




12/11/09            15
4. Estudo de Caso




12/11/09                       16
Características do Projeto

    Arquitetura modular;
    Open Source;
    Padronização de frameworks especialistas;
    Interoperabilidade e manutenibilidade.




12/11/09                                             17
Análise Estática



                Ferramentas de Análise Estática
               Ferramenta        Número de Alarmes
                  PMD                    351
                Checkstyle              9304



           Ferramentas de Análise Estática com Ênfase
                         em Segurança
               Ferramenta        Número de Alarmes
                Findbugs                 14
                 LAPSE                    2




12/11/09                                                        18
Resultados Constatados

    Retorno inadequado;
    Validação imprópria;
    Utilização de Statement;
    Tratamento inadequado de exceção;
    Utilização inadequada de cookie.




12/11/09                                         19
Conclusão




12/11/09               20
Conclusões

    Análise humana é mais eficiente;
    Ferramentas de análise estática colaboram para
    identificação de bugs, mas não devem ser a última
    palavra;
    Bugs de alto impacto.




12/11/09                                            21
Recomendações para Utilização do Projeto Demoiselle

    Substituição dos módulos de persistência até que
    seja sanado os problemas de SQL Injection;
    Utilizar cookies não persistente por padrão (Secure
    by default);
    Rever questões arquiteturais com foco em
    segurança;
    Notificar a comunidade os riscos de utilização da
    implementação padrão;
    Disponibilizar patches ou fixes para os problemas.



12/11/09                                              22
Pesquisas Futuras

    Realizar análise estática das APIs externas
    utilizadas pelo projeto;
    Realizar análise binária do framework.




12/11/09                                            23
Dúvidas?




12/11/09              24
Obrigado!




12/11/09               25
Retorno Inadequado




public Object[] getArguments() {
    return this.arguments;
}




12/11/09                                 26
Sugestão para Tratamento do Retorno Inadequado




public Objec[] getArguments(){
  Object[]copyOf =
    Arrays.copyOf(arguments,
                   arguments.length);
  return copyOf;
}




12/11/09                                               27
Validação Imprópria


public final int execute(String sql) throws
PersistenceJDBCException {
  if (sql == null) throw new
  PersistenceJDBCException("SQL is null");
  ...
  Statement st =
   JDBCUtil.getInstance().getConnection().
                      createStatement();
  result = st.executeUpdate(sql);
  ...
}




12/11/09                                    28
Sugestão para Validação Imprópria


public final int execute(String sql) throws
PersistenceJDBCException {
  String trustedQuery =
         ESAPI.encoder().encodeForSQL(
                     new OracleCodec(), sql);
  ...
  PreparedStatement pst =
      JDBCUtil.getInstance().getConnection().
      createStatementPreparedStatement();
  result = pst.executeUpdate(sql);
  ...
}



12/11/09                                        29
Tratamento Inadequado de Exceção



Private Field getFieldByName(
  A object, String name) throws
        PersistenceJDBCException {
  ...
  } catch (SecurityException e) {
      return null;
  }
}



12/11/09                                    30
Sugestão para Tratamento Inadequado de Exceção



Private Field getFieldByName(
  A object, String name) throws
        PersistenceJDBCException {
  ...
  } catch (SecurityException e) {
      return SomeException;
  }
}



12/11/09                                               31
Utilização Inadequada de Cookie




public static final void
  saveCookie(HttpServletResponse response,
String cookieName, String cookieValue,
String path) {
  int maxAge = (10000 + 3600) * 24 * 30;
  saveCookie(response, cookieName,
             cookieValue, path, maxAge);}




12/11/09                                        32
Sugestão para Utilização Inadequada de Cookie




public static final void
  saveCookie(HttpServletResponse response,
String cookieName, String cookieValue,
String path) {
  saveCookie(response, cookieName,
             cookieValue, path);}




12/11/09                                              33

Contenu connexe

En vedette

Normas de desenho_de_máquinas__aula_4
Normas de desenho_de_máquinas__aula_4Normas de desenho_de_máquinas__aula_4
Normas de desenho_de_máquinas__aula_4ericoprado
 
Normas de desenho_de_máquinas__aula_5
Normas de desenho_de_máquinas__aula_5Normas de desenho_de_máquinas__aula_5
Normas de desenho_de_máquinas__aula_5ericoprado
 
Fundamentos da Cinemática I
Fundamentos da Cinemática IFundamentos da Cinemática I
Fundamentos da Cinemática IUbirajara Neves
 
Normas de desenho_de_máquinas__aula_6
Normas de desenho_de_máquinas__aula_6Normas de desenho_de_máquinas__aula_6
Normas de desenho_de_máquinas__aula_6ericoprado
 
539 fisica estatica_dos_corpos_extensos_exercicios
539 fisica estatica_dos_corpos_extensos_exercicios539 fisica estatica_dos_corpos_extensos_exercicios
539 fisica estatica_dos_corpos_extensos_exerciciosLeonardo Paganotto
 
Equações lineares
Equações lineares Equações lineares
Equações lineares LCCIMETRO
 
77785017 apostila-desenho-tecnico-3º-ano-faetec
77785017 apostila-desenho-tecnico-3º-ano-faetec77785017 apostila-desenho-tecnico-3º-ano-faetec
77785017 apostila-desenho-tecnico-3º-ano-faetecJupira Silva
 
Fundamentos da Matematica Elementar 7 geometria analítica - Lezzi, Dolce, E...
Fundamentos da Matematica Elementar 7   geometria analítica - Lezzi, Dolce, E...Fundamentos da Matematica Elementar 7   geometria analítica - Lezzi, Dolce, E...
Fundamentos da Matematica Elementar 7 geometria analítica - Lezzi, Dolce, E...Pedro Santos
 
Estática dos fluidos - parte 1
Estática dos fluidos - parte 1Estática dos fluidos - parte 1
Estática dos fluidos - parte 1engciviluniplan14
 
Fundamentos da Matematica Elementar 2 logaritmos
Fundamentos da Matematica Elementar 2 logaritmosFundamentos da Matematica Elementar 2 logaritmos
Fundamentos da Matematica Elementar 2 logaritmosPedro Santos
 
Fundamentos da Matematica Elementar 3 trigonometria
Fundamentos da Matematica Elementar 3 trigonometriaFundamentos da Matematica Elementar 3 trigonometria
Fundamentos da Matematica Elementar 3 trigonometriaPedro Santos
 
Protec - Desenhista de máquinas - Desenho técnico
Protec - Desenhista de máquinas - Desenho técnicoProtec - Desenhista de máquinas - Desenho técnico
Protec - Desenhista de máquinas - Desenho técnicoJoão Ricardo Souza Modesto
 
Fundamentos.de.matematica.elementar.vol.03.trigonometria
Fundamentos.de.matematica.elementar.vol.03.trigonometriaFundamentos.de.matematica.elementar.vol.03.trigonometria
Fundamentos.de.matematica.elementar.vol.03.trigonometriaCao Phan Quốc
 
Desenho de máquinas
Desenho de máquinasDesenho de máquinas
Desenho de máquinasDiego Santos
 
Álgebra linear e geometria analítica 2ª edição
Álgebra linear e geometria analítica 2ª ediçãoÁlgebra linear e geometria analítica 2ª edição
Álgebra linear e geometria analítica 2ª ediçãoRangel Victor
 
Fundamentos da Matematica Elementar 4 sequências, matrizes, determinantes, , ...
Fundamentos da Matematica Elementar 4 sequências, matrizes, determinantes, , ...Fundamentos da Matematica Elementar 4 sequências, matrizes, determinantes, , ...
Fundamentos da Matematica Elementar 4 sequências, matrizes, determinantes, , ...Pedro Santos
 
Fundamentos de matemática elementar vol 03 - trigonometria - gelson iezzi
Fundamentos de matemática elementar   vol 03 - trigonometria - gelson iezziFundamentos de matemática elementar   vol 03 - trigonometria - gelson iezzi
Fundamentos de matemática elementar vol 03 - trigonometria - gelson iezzilucasrdoliveira
 

En vedette (20)

Normas de desenho_de_máquinas__aula_4
Normas de desenho_de_máquinas__aula_4Normas de desenho_de_máquinas__aula_4
Normas de desenho_de_máquinas__aula_4
 
Normas de desenho_de_máquinas__aula_5
Normas de desenho_de_máquinas__aula_5Normas de desenho_de_máquinas__aula_5
Normas de desenho_de_máquinas__aula_5
 
Fundamentos da Cinemática I
Fundamentos da Cinemática IFundamentos da Cinemática I
Fundamentos da Cinemática I
 
Matrizes
MatrizesMatrizes
Matrizes
 
Normas de desenho_de_máquinas__aula_6
Normas de desenho_de_máquinas__aula_6Normas de desenho_de_máquinas__aula_6
Normas de desenho_de_máquinas__aula_6
 
539 fisica estatica_dos_corpos_extensos_exercicios
539 fisica estatica_dos_corpos_extensos_exercicios539 fisica estatica_dos_corpos_extensos_exercicios
539 fisica estatica_dos_corpos_extensos_exercicios
 
Equações lineares
Equações lineares Equações lineares
Equações lineares
 
77785017 apostila-desenho-tecnico-3º-ano-faetec
77785017 apostila-desenho-tecnico-3º-ano-faetec77785017 apostila-desenho-tecnico-3º-ano-faetec
77785017 apostila-desenho-tecnico-3º-ano-faetec
 
Fundamentos da Matematica Elementar 7 geometria analítica - Lezzi, Dolce, E...
Fundamentos da Matematica Elementar 7   geometria analítica - Lezzi, Dolce, E...Fundamentos da Matematica Elementar 7   geometria analítica - Lezzi, Dolce, E...
Fundamentos da Matematica Elementar 7 geometria analítica - Lezzi, Dolce, E...
 
Estática dos fluidos - parte 1
Estática dos fluidos - parte 1Estática dos fluidos - parte 1
Estática dos fluidos - parte 1
 
Fundamentos da Matematica Elementar 2 logaritmos
Fundamentos da Matematica Elementar 2 logaritmosFundamentos da Matematica Elementar 2 logaritmos
Fundamentos da Matematica Elementar 2 logaritmos
 
Fundamentos da Matematica Elementar 3 trigonometria
Fundamentos da Matematica Elementar 3 trigonometriaFundamentos da Matematica Elementar 3 trigonometria
Fundamentos da Matematica Elementar 3 trigonometria
 
Protec - Desenhista de máquinas - Desenho técnico
Protec - Desenhista de máquinas - Desenho técnicoProtec - Desenhista de máquinas - Desenho técnico
Protec - Desenhista de máquinas - Desenho técnico
 
Apresentação dos-elementos-de-máquians-unifor
Apresentação dos-elementos-de-máquians-uniforApresentação dos-elementos-de-máquians-unifor
Apresentação dos-elementos-de-máquians-unifor
 
Fundamentos.de.matematica.elementar.vol.03.trigonometria
Fundamentos.de.matematica.elementar.vol.03.trigonometriaFundamentos.de.matematica.elementar.vol.03.trigonometria
Fundamentos.de.matematica.elementar.vol.03.trigonometria
 
38083393 01-iniciacao-ao-desenho-tecnico-exercicios
38083393 01-iniciacao-ao-desenho-tecnico-exercicios38083393 01-iniciacao-ao-desenho-tecnico-exercicios
38083393 01-iniciacao-ao-desenho-tecnico-exercicios
 
Desenho de máquinas
Desenho de máquinasDesenho de máquinas
Desenho de máquinas
 
Álgebra linear e geometria analítica 2ª edição
Álgebra linear e geometria analítica 2ª ediçãoÁlgebra linear e geometria analítica 2ª edição
Álgebra linear e geometria analítica 2ª edição
 
Fundamentos da Matematica Elementar 4 sequências, matrizes, determinantes, , ...
Fundamentos da Matematica Elementar 4 sequências, matrizes, determinantes, , ...Fundamentos da Matematica Elementar 4 sequências, matrizes, determinantes, , ...
Fundamentos da Matematica Elementar 4 sequências, matrizes, determinantes, , ...
 
Fundamentos de matemática elementar vol 03 - trigonometria - gelson iezzi
Fundamentos de matemática elementar   vol 03 - trigonometria - gelson iezziFundamentos de matemática elementar   vol 03 - trigonometria - gelson iezzi
Fundamentos de matemática elementar vol 03 - trigonometria - gelson iezzi
 

Similaire à Análise Estática do Framework Demoiselle

MobileConf2013 - Desenvolvimento Mobile Seguro
MobileConf2013 - Desenvolvimento Mobile SeguroMobileConf2013 - Desenvolvimento Mobile Seguro
MobileConf2013 - Desenvolvimento Mobile SeguroAugusto Marinho
 
(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?Eduardo Lanna
 
Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de RedesCassio Ramos
 
[Farol UX Santander] Segurança vs UX: Qual relação do usuário com a segur...
[Farol UX Santander] Segurança vs UX: Qual relação do usuário com a segur...[Farol UX Santander] Segurança vs UX: Qual relação do usuário com a segur...
[Farol UX Santander] Segurança vs UX: Qual relação do usuário com a segur...Rafael Burity
 
Splunk live produban
Splunk live produbanSplunk live produban
Splunk live produbanSplunk
 
(2) O Processo de Gerenciamento de Vulnerabilidades Web
(2) O Processo de Gerenciamento de Vulnerabilidades Web(2) O Processo de Gerenciamento de Vulnerabilidades Web
(2) O Processo de Gerenciamento de Vulnerabilidades WebEduardo Lanna
 
[Ifood] Segurança vs UX: Qual relação do usuário com a segurança do sistema
[Ifood] Segurança vs UX: Qual relação do usuário com a segurança do sistema[Ifood] Segurança vs UX: Qual relação do usuário com a segurança do sistema
[Ifood] Segurança vs UX: Qual relação do usuário com a segurança do sistemaRafael Burity
 
(4) Comparando o N-Stalker WAS com o RedeSegura
(4) Comparando o N-Stalker WAS com o RedeSegura(4) Comparando o N-Stalker WAS com o RedeSegura
(4) Comparando o N-Stalker WAS com o RedeSeguraEduardo Lanna
 
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoDesenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoClavis Segurança da Informação
 
Análise de Vulnerabilidades em Aplicações na Web Nacional
Análise de Vulnerabilidades em Aplicações na Web NacionalAnálise de Vulnerabilidades em Aplicações na Web Nacional
Análise de Vulnerabilidades em Aplicações na Web NacionalCarlos Serrao
 
Segurança em desenvolvimento de software
Segurança em desenvolvimento de softwareSegurança em desenvolvimento de software
Segurança em desenvolvimento de softwareJeronimo Zucco
 
Webinar Segurança de DevOps
Webinar Segurança de DevOpsWebinar Segurança de DevOps
Webinar Segurança de DevOpsTenchi Security
 
Desenvolvimento Seguro Android GDG RIO
Desenvolvimento Seguro Android GDG RIODesenvolvimento Seguro Android GDG RIO
Desenvolvimento Seguro Android GDG RIOAugusto Marinho
 

Similaire à Análise Estática do Framework Demoiselle (20)

MobileConf2013 - Desenvolvimento Mobile Seguro
MobileConf2013 - Desenvolvimento Mobile SeguroMobileConf2013 - Desenvolvimento Mobile Seguro
MobileConf2013 - Desenvolvimento Mobile Seguro
 
(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?
 
(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?(1) Por que Seguranca de Aplicacoes Web?
(1) Por que Seguranca de Aplicacoes Web?
 
Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de Redes
 
Você confia nas suas aplicações mobile?
Você confia nas suas aplicações mobile?Você confia nas suas aplicações mobile?
Você confia nas suas aplicações mobile?
 
[Farol UX Santander] Segurança vs UX: Qual relação do usuário com a segur...
[Farol UX Santander] Segurança vs UX: Qual relação do usuário com a segur...[Farol UX Santander] Segurança vs UX: Qual relação do usuário com a segur...
[Farol UX Santander] Segurança vs UX: Qual relação do usuário com a segur...
 
Splunk live produban
Splunk live produbanSplunk live produban
Splunk live produban
 
(2) O Processo de Gerenciamento de Vulnerabilidades Web
(2) O Processo de Gerenciamento de Vulnerabilidades Web(2) O Processo de Gerenciamento de Vulnerabilidades Web
(2) O Processo de Gerenciamento de Vulnerabilidades Web
 
(2) O Processo de Gerenciamento de Vulnerabilidades Web
(2) O Processo de Gerenciamento de Vulnerabilidades Web(2) O Processo de Gerenciamento de Vulnerabilidades Web
(2) O Processo de Gerenciamento de Vulnerabilidades Web
 
[Ifood] Segurança vs UX: Qual relação do usuário com a segurança do sistema
[Ifood] Segurança vs UX: Qual relação do usuário com a segurança do sistema[Ifood] Segurança vs UX: Qual relação do usuário com a segurança do sistema
[Ifood] Segurança vs UX: Qual relação do usuário com a segurança do sistema
 
Antar ferreira
Antar ferreiraAntar ferreira
Antar ferreira
 
Secure Any Cloud
Secure Any CloudSecure Any Cloud
Secure Any Cloud
 
(4) Comparando o NStalker WAS com o RedeSegura
(4) Comparando o NStalker WAS com o RedeSegura(4) Comparando o NStalker WAS com o RedeSegura
(4) Comparando o NStalker WAS com o RedeSegura
 
(4) Comparando o N-Stalker WAS com o RedeSegura
(4) Comparando o N-Stalker WAS com o RedeSegura(4) Comparando o N-Stalker WAS com o RedeSegura
(4) Comparando o N-Stalker WAS com o RedeSegura
 
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoDesenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
 
Auditoria em Mainframe. (Eugênio Fernandes)
Auditoria em Mainframe. (Eugênio Fernandes)Auditoria em Mainframe. (Eugênio Fernandes)
Auditoria em Mainframe. (Eugênio Fernandes)
 
Análise de Vulnerabilidades em Aplicações na Web Nacional
Análise de Vulnerabilidades em Aplicações na Web NacionalAnálise de Vulnerabilidades em Aplicações na Web Nacional
Análise de Vulnerabilidades em Aplicações na Web Nacional
 
Segurança em desenvolvimento de software
Segurança em desenvolvimento de softwareSegurança em desenvolvimento de software
Segurança em desenvolvimento de software
 
Webinar Segurança de DevOps
Webinar Segurança de DevOpsWebinar Segurança de DevOps
Webinar Segurança de DevOps
 
Desenvolvimento Seguro Android GDG RIO
Desenvolvimento Seguro Android GDG RIODesenvolvimento Seguro Android GDG RIO
Desenvolvimento Seguro Android GDG RIO
 

Análise Estática do Framework Demoiselle

  • 1. UCB / Universa Lato Sensu – Sistemas Orientados a Objetos Alexandre Menezes Gisele Rodrigues 12/11/09 1
  • 2. Análise Estática do Framework Demoiselle do Governo Federal com Ênfase em Segurança de Aplicações Web 12/11/09 2
  • 3. Agenda 1. Introdução 2. Segurança mais que necessidade 3. Segurança no desenvolvimento de software 4. Estudo de caso 5. Conclusão 12/11/09 3
  • 5. Dependência de Recursos Tecnológicos 12/11/09 5
  • 6. Segurança da Informação Assegurar e proteger ativos; Mudança de Cultura e Paradigma; Integridade + Disponibilidade + Confidencialidade. 12/11/09 6
  • 7. 2. Segurança mais que necessidade 12/11/09 7
  • 9. Total de Incidentes Reportados ao Cert.br (1999 - 2009) 12/11/09 9
  • 10. Fatores de Risco nos Sistemas Atuais Conectividade; Extensibilidade; Complexidade. 12/11/09 10
  • 11. Vulnerabilidades OWASP Top 10 - 2007 A1 XSS A2 Injection Flaws A3 Malicious File Execution A4 Insecure Direct Object A5 CSRF A6 Information Leakage and Improper Error Handling A7 Broken Authentication and Session Management A8 Insecure Cryptographic A9 Insecure Communications A10 Failure to Restrict URL Access 12/11/09 11
  • 13. 3. Segurança no Desenvolvimento de Software 12/11/09 13
  • 14. Sistemas Seguros Secure by design; Secure by default; Secure by deployment. 12/11/09 14
  • 16. 4. Estudo de Caso 12/11/09 16
  • 17. Características do Projeto Arquitetura modular; Open Source; Padronização de frameworks especialistas; Interoperabilidade e manutenibilidade. 12/11/09 17
  • 18. Análise Estática Ferramentas de Análise Estática Ferramenta Número de Alarmes PMD 351 Checkstyle 9304 Ferramentas de Análise Estática com Ênfase em Segurança Ferramenta Número de Alarmes Findbugs 14 LAPSE 2 12/11/09 18
  • 19. Resultados Constatados Retorno inadequado; Validação imprópria; Utilização de Statement; Tratamento inadequado de exceção; Utilização inadequada de cookie. 12/11/09 19
  • 21. Conclusões Análise humana é mais eficiente; Ferramentas de análise estática colaboram para identificação de bugs, mas não devem ser a última palavra; Bugs de alto impacto. 12/11/09 21
  • 22. Recomendações para Utilização do Projeto Demoiselle Substituição dos módulos de persistência até que seja sanado os problemas de SQL Injection; Utilizar cookies não persistente por padrão (Secure by default); Rever questões arquiteturais com foco em segurança; Notificar a comunidade os riscos de utilização da implementação padrão; Disponibilizar patches ou fixes para os problemas. 12/11/09 22
  • 23. Pesquisas Futuras Realizar análise estática das APIs externas utilizadas pelo projeto; Realizar análise binária do framework. 12/11/09 23
  • 26. Retorno Inadequado public Object[] getArguments() { return this.arguments; } 12/11/09 26
  • 27. Sugestão para Tratamento do Retorno Inadequado public Objec[] getArguments(){ Object[]copyOf = Arrays.copyOf(arguments, arguments.length); return copyOf; } 12/11/09 27
  • 28. Validação Imprópria public final int execute(String sql) throws PersistenceJDBCException { if (sql == null) throw new PersistenceJDBCException("SQL is null"); ... Statement st = JDBCUtil.getInstance().getConnection(). createStatement(); result = st.executeUpdate(sql); ... } 12/11/09 28
  • 29. Sugestão para Validação Imprópria public final int execute(String sql) throws PersistenceJDBCException { String trustedQuery = ESAPI.encoder().encodeForSQL( new OracleCodec(), sql); ... PreparedStatement pst = JDBCUtil.getInstance().getConnection(). createStatementPreparedStatement(); result = pst.executeUpdate(sql); ... } 12/11/09 29
  • 30. Tratamento Inadequado de Exceção Private Field getFieldByName( A object, String name) throws PersistenceJDBCException { ... } catch (SecurityException e) { return null; } } 12/11/09 30
  • 31. Sugestão para Tratamento Inadequado de Exceção Private Field getFieldByName( A object, String name) throws PersistenceJDBCException { ... } catch (SecurityException e) { return SomeException; } } 12/11/09 31
  • 32. Utilização Inadequada de Cookie public static final void saveCookie(HttpServletResponse response, String cookieName, String cookieValue, String path) { int maxAge = (10000 + 3600) * 24 * 30; saveCookie(response, cookieName, cookieValue, path, maxAge);} 12/11/09 32
  • 33. Sugestão para Utilização Inadequada de Cookie public static final void saveCookie(HttpServletResponse response, String cookieName, String cookieValue, String path) { saveCookie(response, cookieName, cookieValue, path);} 12/11/09 33