Como corrigir um SQL ERROR ?

Seguir

 

Risco

Alta

CVE / CWE

CWE-209

Tipo

Lógica ou Aplicação

Correção

Médio / Difícil

Problema

Algumas aplicações permitem que determinados parâmetros aceitem alguns tipos de códigos SQL sem realizar nenhum tipo de filtro, mesmo que a vulnerabilidade não apresente um erro de SQL Injection, é possível gerar um erro que apresente detalhes da query que está sendo realizada no banco de dados e consequentemente é possível enumerar tabelas, a estrutura do banco de dados e com isso criar ataques mais elaborados.

 

Solução

Se o erro acontecer enquanto o usuário estiver fazendo alguma requisição que exige a conexão com a base de dados, tenha certeza que será fornecido para o usuário apenas informações limitadas sobre o erro. O envio de informações detalhadas do erro no SQL podem ajudar um atacante descobrir a sua estrutura de base de dados e identificar as tabelas, podendo dessa forma direcionar melhor o ataque para ser mais efetivo.

 

PHP: No PHP é possível definir se os erros detalhados serão ou não exibidos para o usuário. A configuração abaixo pode ser realizada no arquivo php.ini e irá registrar todos os erros em um arquivo de log no servidor, porém não irá exibir o erro para o usuário.

 

log_errors = On

display_errors = Off

Mais detalhes podem ser obtidos em http://us2.php.net/errorfunc

 

ASP.NET: A implementação de uma configuração global para o tratamento de erros irá aumentar a segurança de sua aplicação e a sua usabilidade através do redirecionamento dos usuários para uma página de erro customizada quando uma excessão ocorrer. No ASP.NET você pode fazer esse tratamento através do arquivo global.asax ou em entradas específicas em sua aplicação. Para configurar uma página de erro customizada você precisará editar o arquivo web.config e adicionar a tag customerrors, como no exemplo abaixo:

 

<configuration>

<customerrors mode="On" defaultredirect="error.aspx" />

</configuration>

O atributo mode contém 3 opções: "On", "Off" e "RemoteOnly". Quando configurado como "On" a página customizada de erro será usada sempre que uma exceção ocorrer. Quando é configurado como "RemoteOnly" ele somente irá redirecionar para a página de erro quando o cliente não tiver a origem através da máquina local, ou seja, os usuários locais continuarão a ver as mensagens detalhadas de erro. Já o modo "Off" desabilita a página de erro customizada e mostra o erro para todos.

 

Mais informações: https://msdn.microsoft.com/en-us/library/h0hfz6fc%28v=vs.85%29.aspx

 

Java: Sistemas em produção nunca devem usar a página de erro padrão do Java. Uma página de erro customizada deve ser criada usando a diretiva <error-page> no arquivo web.xml. Por exemplo, coloque o modelo de código abaixo dentro do <web-app> para capturar todas as exceções JSP de compilação e runtime e redirecione eles para uma página de erro customizada.

 

<error-page><exception >java.lang.Exception</exception> <location>/safeErrorPage.html</location></error-page>







Tem mais dúvidas? Envie uma solicitação

Comentários

Powered by Zendesk