SQL INJECT EM APLICATIVO
aparentemente o replace([Ô][txt-color=#FF0000][ô][/txt-color]inject[Ô],[Ô][txt-color=#FF8040][ô][/txt-color][Ô],[Ô][Ô]) resolveu o problema aqui, minha duvida é se tem outra forma de da scape pra eu bloquear tb
Por exemplo, ao cadastrar a senha, vai para o banco um hasch40, ou seja, mesmo que a senha seja a letra a, irao 40 caracteres para o campo. Quando for testar a senha, teste o resultado criptografado. Assim, se alguem digitar [ô]or 1 = 1, isto sera criptografado antes de ser comparado, impossibilidade sqlinjection.
insert into usuarios(nome, senha) values([ô]admin[ô], encode([ô]123456[ô], chaveparacodificar))
quando der o select, vc não vai comparar a senha igual a 123456, mas sim com o encode da senha...
por exemplo...
select * from usuarios where nome=[ô]admin[ô] and senha=encode(replace(txtsenha.text,[Ô][ô][Ô],[Ô]\[ô][Ô]), chaveparacodificar))
ou seja, se o lammer tentar usar [Ô]or 1=1[Ô], esse valor sera codificado junto para validar a senha e não ira retornar nenhum registro...
postei um exemplo já aqui no vbmania na area para banco de dados.
aconselho vc a buscar na rede algum tutorial sobre injection, e, com base nele e seu conhecimento nos comandos do banco de dados que utiliza trabalhar para evitar esse tipo de ataque.
Citação:LROSSI escreveu:
faz sim... por exemplo...
insert into usuarios(nome, senha) values([ô]admin[ô], encode([ô]123456[ô], chaveparacodificar))
quando der o select, vc não vai comparar a senha igual a 123456, mas sim com o encode da senha...
por exemplo...
select * from usuarios where nome=[ô]admin[ô] and senha=encode(replace(txtsenha.text,[Ô][ô][Ô],[Ô][ô][Ô]), chaveparacodificar))
ou seja, se o lammer tentar usar [Ô]or 1=1[Ô], esse valor sera codificado junto para validar a senha e não ira retornar nenhum registro...
postei um exemplo já aqui no vbmania na area para banco de dados.
aconselho vc a buscar na rede algum tutorial sobre injection, e, com base nele e seu conhecimento nos comandos do banco de dados que utiliza trabalhar para evitar esse tipo de ataque.
geralmente eu uso MD5(); em password, mas o problema é que da pra monta a query em qualquer campo, desde uma entrada de pesquisa code de barra ou qualquer outra coisa.
Citação:ALMARTI escreveu:
Olha, o que vc diz não faz nenhum sentido. Onde trabalho todas as aplicações são assim. Não há aumento em processamento, temos 5000 utilizadores continuos, e uma vez imolada a tecnica, jamais demos manutenção. Utilizamos esta técnica em Java, php e rails. E trabalhamos assim pelo menos há cinco anos e atendemos, desta forma, as especificacoes de auditoria.
[Ô]querido moderador[Ô], você pode te 1 milhão de utilizadores continuos e pode eu não sobre carregar um computador dependendo de onde ta o processo de encriptação esta. Se o processo de encriptação for realizado pela maquina cliente isso não vai causa nenhum gargalo... agora se os dados forem encriptado no servidor e depois armazenado ou pesquisado ai sim poderia ter problema, isso é bem relativo.
e isso é valido pra qualquer linguagem... se quise listo algumas linguagens aqui , mas pra q ?