| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/06/2007 18:26:33
|
febeckers
Virtual Machine Man
Membro desde: 23/01/2007 16:12:50
Mensagens: 588
Localização: Curitiba - PR
Offline
|
alguem poderia me ajudar a evitar sql injection em jsp??
no agurdo e obrigado!
fernando Becker
|
Abraços
Site http://www.fernandobecker.com.br
Resumo de novela |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/06/2007 18:29:27
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
"No aguardo " é coisa de mulher grávida, e depois do parto ela fica "em resguardo". Que expressão horrível...
De qualquer maneira, para evitar SQL Injection, a maneira mais simples é NUNCA montar expressões SQL "no braço" dentro de seu código; sempre usar Prepared Statements.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/06/2007 18:42:55
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
E, aproveitando... nao se poe SQL no JSP, entao nao entendi seu problema pra comecar
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/06/2007 18:59:35
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
cv wrote:E, aproveitando... nao se poe SQL no JSP, entao nao entendi seu problema pra comecar 
O que o CV disse e repisa é recomendação oficial da Sun (não pôr código SQL ou Java em JSPs
http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/web-tier/web-tier3.html#1097966
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/06/2007 19:24:14
|
febeckers
Virtual Machine Man
Membro desde: 23/01/2007 16:12:50
Mensagens: 588
Localização: Curitiba - PR
Offline
|
nao gostei do comentario no aguardo!! hehe
mas no caso de eu ter um sql em meu codigo jsp... sei que nao é o recomendavel mas tenho um projeto enorme no qual estou comecando a trabalhar... tem com comparar o campo e apenas substituir as aspas simples?
|
Abraços
Site http://www.fernandobecker.com.br
Resumo de novela |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/06/2007 19:38:18
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
bom, se nao da pra refatorar a cagada de por sql no JSP, pelo menos a concatenação dá ne?
se vc usar Statement, vai te q ficar fazendo algo horrivel como:
... "AND NOME LIKE'" + pesquisa.getNome() + "' MAIS SQL CONCATENADO"...
em vez disso, vc monta teu sql assim:
StringBuffer sql = new StringBuffer();
sql.append( "WHERE CAMPO1 LIKE ?");
sql.append( "AND CAMPO2 LIKE ?");
sql.append( "AND CAMPO3 = ?");
sql.append( "AND CAMPO4 = ?");
PreparedStatemend pstmt = SuaConexao.prepareStatement( sql.toString() );
pstmt.setString(1, "dsdadads");
pstmt.setSTring(2, "dosaidasodi");
pstmt.setLong(3, 1000);
pstmt.setTimestamp(4, pesquisa.getData() );
os 'aspas' serao colocados pelo JDBC qdo for string. e no caso de Datas, ele faz o que deve fazer tambem...
OU....
para 1 dia, ranca tudo e usa Hibernate
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/06/2007 19:43:25
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
febeckers wrote:tem com comparar o campo e apenas substituir as aspas simples?
Há um monte de casos em que um atacante pode introduzir código malicioso. O exemplo clássico é o que você faz com aspas simples, como você mencionou. Nesse caso bastaria duplicar as aspas.
Mas isso acho que não é suficiente, porque outros ataques são possíveis com:
- Entradas de tamanho ilimitado - alguém pode pôr uma string de 10.000 caracteres, submetê-la e fritar o driver do seu banco;
- Caracteres especiais de escape - por exemplo, no HSQLDB você pode incluir "\" para escapar caracteres unicode em Strings. Se você não escapar corretamente os "\\" também, você pode ter uma variação do ataque com as aspas simples.
Eu recomendaria varrer o código e substituir (gradativamente, é claro!) com PreparedStatements. Isso tem o efeito colateral de corrigir outras vulnerabilidades que podem estar "escondidas" no seu código.
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/06/2007 19:48:31
|
febeckers
Virtual Machine Man
Membro desde: 23/01/2007 16:12:50
Mensagens: 588
Localização: Curitiba - PR
Offline
|
é so o na parte de login que preciso fzer isso! por isso achu que compar e substituir ja esta bom ate eu refazer o projeto dentro dos conformes!!!
alguem me ajuda a fazer isso?
|
Abraços
Site http://www.fernandobecker.com.br
Resumo de novela |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/06/2007 19:52:37
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Siga o que o FabioCSI lhe sugeriu. Mais bem explicado que isso...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/06/2007 20:04:18
|
febeckers
Virtual Machine Man
Membro desde: 23/01/2007 16:12:50
Mensagens: 588
Localização: Curitiba - PR
Offline
|
tentei mas ta dando um erro de sintaxe no PreparedStatemend.
|
Abraços
Site http://www.fernandobecker.com.br
Resumo de novela |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/06/2007 20:06:39
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
da segunda linha em diante nos appends do StringBuffer, coloque um espaço no inicio da string.
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/06/2007 20:07:50
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
O Fábio cometeu um erro de ortografia (ele deve ter postado - ele escreveu PreparedStatemend em vez de PreparedStatement.
Mas não é nada que você, que é esperto, não possa corrigir sozinho, não é?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/06/2007 20:11:45
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
ddshdusahD malz a garfe =P
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/06/2007 20:13:06
|
febeckers
Virtual Machine Man
Membro desde: 23/01/2007 16:12:50
Mensagens: 588
Localização: Curitiba - PR
Offline
|
sim mas esses aqui nao so tao espewrto assim.... hehe
|
Abraços
Site http://www.fernandobecker.com.br
Resumo de novela |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/06/2007 20:24:45
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
O Fábio escreveu isto aqui:
StringBuffer sql = new StringBuffer();
Ele não escreveu "String sql = """
É por isso que você está tendo problema com os "appends" - você não está lendo o que ele escreveu.
|
|
|
 |
|
|