Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rcast

Proteção contra SQL Injection

Recommended Posts

Ola pessoal. Estou terminando meu sistema e estou tentando deixar seguro contra sql injection, meu sistema tem apenas cadastro de mailing list.

Conversando com um amigo, ele me disse que utilizar Stored Procedures bloqueia o injection, mas dependendo da SP pode não bloquear.

Minha única stored procedure "pública" fazendo acesso ao banco é a seguinte:

 

--------------------------------------------------------------------------------------------------------

DELIMITER $$

 

CREATE DEFINER=`database`@`%` PROCEDURE `NewsletterInsert`(

p_email varchar(50),

p_datacadastro datetime

)

INSERT INTO Newsletter

(

email, datacadastro

)

VALUES

(

p_email,

p_datacadastro

)$$

 

DELIMITER ;

 

--------------------------------------------------------------------------------------------------------

 

 

Além de utilizar esta Stored Procedure, tenho uma função que elimina alguns caracteres maliciosos, segue abaixo o código em C#:

 

 

--------------------------------------------------------------------------------------------------------

 

public static string CleanInjection(string text)

{

text = text.Replace("'", String.Empty);

text = text.Replace("\"", String.Empty);

text = text.Replace("´", String.Empty);

text = text.Replace(";", String.Empty);

text = text.Replace("--", String.Empty);

text = text.Replace("/", String.Empty);

 

return text;

}

 

--------------------------------------------------------------------------------------------------------

 

Eu estou seguro? Se não tiver, como poderia melhorar a segurança?

Agradeço MUITO se puderem me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mesmo com isso eu ainda posso encher seu banco de lixo....

 

 

p_datacadastro =

1),

(1,1),

(1,1),

(1,1),

(1,1),

(1,1),

(1,1),

(1,1),

(1,1),

(1,1),

(1,1),

(1,1),

(1,1

 

na minha experiencia como DBA e analista você nao deve deixar passar pra dentro do banco nada q nao seja [0-9]|[a-Z]

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu giesta..

mesmo assim eu precisaria deixar passar alguns caracteres especiais, como o '@', '_', '.' e '-' pois vai ser um campo de emails..

uma duvida, eu posso usar algum tipo de programaçào na própria stored procedure pra fazer essa verificação?

obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.