Base de Conhecimento
SQL Injection (Injeção de SQL) Imprimir este Artigo
SQL Injection é um ataque onde o código malicioso é passado para um servidor SQL paraexecução. O ataque pode resultar em acesso não autorizado a dados confidenciais, ou destruição de dados críticos.
Antes de tentar ler os métodos a seguir, perceba que isso só deve ser uma preocupação para os desenvolvedores PHP e afins. Se você estiverusando um programa de banco de dados orientado (por exemplo, WordPress, Joomla, OsCommerce), então tudo que vocêprecisa fazer é atualizarseus programas para a versão mais recente disponível.
Métodos para previnir SQL Injection
Escapando
Uma forma de evitar as injeções é evitar caracteres perigosos (ou seja, barra invertida,apóstrofo e ponto e vírgula). No PHP, é típico utilizar a técnica de "escaping" na entrada usando a função mysql_real_escape_string antes de enviar a consulta SQL.
Exemplo:
1 |
$Uname = mysql_real_escape_string($Uname);<br>$Pword = mysql_real_escape_string($Pword);<br>$query = "SELECT * FROM Users where UserName='$Uname' and Password='$Pword'" ;<br>mysql_query($query); |
Declarações parametrizadas
Uma consulta parametrizada usa espaços reservados para a entrada, e os valores dos parâmetros são fornecidos em tempo de execução.
1 |
$params = array($Uname, $Pword);<br>$sql = 'INSERT INTO Users (UserName, Password) VALUES (?, ?)' ;<br>$query = sqlsrv_query($connection, $sql, $params); |
Avançado: No PHP versão 5 e superior, existem várias opções para a utilização dedeclarações com parâmetros, a camada de banco de dados DOPé um deles. Existem também métodos específicos de fornecedores, por exemplo, o MySQL 4.1 + usado com aextensão mysqli.
Esta resposta lhe foi útil?
Veja também
1. A coisa mais importante a fazer é manter suas senhas em segredo. Se você precisafornecer a...
m geral a regra é criar senhas que sejam fáceis de lembrar, mas difícil de adivinhar.Pessoas...
Quando você impede que seu sistema responda à solicitações de ping, isso pode garantir um maior...
Tanto o Windows e Linux têm a capacidade de diagnosticar a saúde de uma ligação entre uma origem...
Como faço para negar o acesso de endereços IP? Você quer impedir que alguém visite o seu site?...