Rcast 0 Denunciar post Postado Fevereiro 24, 2009 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
giesta 29 Denunciar post Postado Fevereiro 25, 2009 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
Rcast 0 Denunciar post Postado Fevereiro 26, 2009 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