sc_sql_injection - Quando usar?

Lendo a ajuda do scriptcase, não ficou muito claro pra mim quando eu preciso usar a macro sc_sql_injection.

Eu devo tratar todos os campos dos forms de minha aplicação protegendo com esta macro ou não?

Ao criar o módulo de segurança automatizado pelo scriptcase 6 com o tipo por grupos, acessando o formulário de controle que é usado para trocar senha, nele é usado esta macro.

Se alguém poder me dá mais esclarecimentos, fico grato.

{camposenha} = sc_sql_injection({camposenha});

Obrigado, mas a minha dúvida está mais relacionada em quando devo usar, pois na ajuda diz que todos forms gerados no scriptcase são protegidos, então, quando eu devo usar? Devo utilizar isso em todos os formulários em todos os campos?

Aplicações de Controle e Blank creio eu, pois serão campos criados por você, já o form o scriptcase importa do banco.

Então todos os campos criados por mim devo utilizar o sc_sql_injection… por exemplo se eu criar um campo num form normal, sem ser de controle ou blank, para por exemplo usar o valor dessa campo em uma variável, devo utilizar a macro sc_sql_injection?

Sim.

Na verdade o sql_injection será de ajuda se sua aplicação recebe parâmetros via GET ou POST, variáveis de sessão são menos suscetíveis a este tipo de ataque.

Eu em todos os forms procuro analisar as chamadas que farei ao mesmo e se for passar um parâmetro para ele protejo na aplicação chamadora e na aplicação destino se for uma chamada em sessão já não vejo necessidade.

Talvez fosse caso de estudo por parte da NM colocar no gerador de código uma condição que analise se o form ou controle tem variáveis de entrada alimentadas via POST ou GET e já por padrão aplicar essa macro, ou ainda nas configurações do campo ter um checkbox pra selecionar se quer proteger aquele campo e consequentemente a variável derivada dele com sc_sql_injection, economizaria algumas linhas de código.

Olá Guto

Não sei qual é o seu nível mas, salvo engano, parece-me que você não compreendeu bem o que a macro sc_sql_injection faz. Se não for o caso, pode ignorar este post.

A macro citada serve para retirar de dentro de uma consulta montada a partir dados informados pelo usuário um tipo de instrução utilizada para quebrar a segurança da aplicação através da técnica de Injeção de SQL.

Suponha que você tenha um cadastro de clientes que tenha como campo chave o email e a senha. Você cria um formulário para o usuário ver as informações, exclusivamente, de seu cadastro. No formulário tem os campos email e senha. No campo email (suponhamos que não estejamos usando uma checagem de email válido) o usuário pode preencher como: fulano@provedor.com.br’ OR ‘A’= 'A e a senha 1234. Agora suponha que a montagem da consulta esteja assim:

“SELECT * FROM clientes WHERE senha = '” . {senha} . "’ AND email = "’ . {email} . “’”

Depois de receber as variáveis a instrução ficará:

SELECT * FROM clientes WHERE senha = ‘1234’ AND email = ‘fulano@provedor.com.br’ OR ‘A’ = ‘A’

Dessa maneira, o usuário poderá visualizar os dados de todos os clientes, quebrando a segurança do sistema no quesito confidencialidade.

A macro sc_sql_injection verifica a existência de trechos como ’ OR ‘A’= 'A dentro de uma variável e os retira.

Então, nossa consulta deveria ser escrita da seguinte maneira:

“SELECT * FROM clientes WHERE senha = '” . sc_sql_injection({senha}) . "’ AND email = "’ . sc_sql_injection({email}) . “’”

Espero ter ajudado.

Abraço,

Ronaldo Morais

Complementando,

Esqueci de mencionar que o exemplo acima, a injeção de SQL vai trazer os dados mesmo que a senha e o nome do usuário não estejam corretos.

Aproveitando que esse assunto está quente, solicitei a um dos meus parceiros que fizesse testes no meu servidor/app.

Vamos ver se realmente o inject do SC funciona…

no ultimo teste que solicitei ele passou por 2 firewall aqui na empresa…

Mas o que passar pelo firewall tem haver com o SC? kkkkk

Esse método de proteção inject protege mesmo, eu já tentei todas as formas de sql inject.

Sim, robert, não tem nada a ver… apenas um comparativo da experiência do colega…

ceviu.com.br

no rodapé…

100% seguro: O Portal CEVIU utiliza as mais avançadas tecnologias de proteção de dados para que você navegue com tranquilidade. Privacidade e segurança são alguns dos principais compromissos do Portal CEVIU com seus usuários.

ele descobriu uma vulnerabilidade lá faz 5 dias… mudou um curriculum de um membro de nosso grupo…

lógico…ele comunicou ao site…

Ele da consultoria de segurança?

Posso ter o contato dele?

Não sei se ele tá com tempo, pois ele vive na ponte SP/BH…
No entanto perguntarei primeiro a ele se posso passar os contatos… neste momento ele está off-line…

OPs…infelizmente ele não autorizou…disse que está sem tempo…mas quando desapertar ele avisa…

Esse fim de semana ele vai testar o SC no meu servidor… ele gostou do que o SC proporciona… dai converso e vejo o que ele vai resolver…