Programação  
 
Conhecimento computador >> Programação >> Programação PHP /MySQL >> 
Tutorial Injection MySQL
MySQL Injection é ato de inserir declaração MySQL em um banco de dados sem o conhecimento do proprietário do banco de dados . Ele geralmente é feito através da exploração de campos de entrada de usuários que não são protegidos adequadamente. Em vez de fornecer entrada real de que proprietário do banco de dados pediu , o usuário injeta uma instrução MySQL que muda o comportamento da consulta para dar a capacidade do usuário injeção para manipular o banco de dados. Injeções MySQL

A maneira mais fácil de entender e aprender o que realmente injeção MySQL doesis para dar uma olhada em um exemplo. Uma das maneiras mais populares de usar MySQLinjections é ignorar as verificações de login em sites . Aqui está um exemplo de awebsite que está usando o seguinte formulário para autenticar o usuário :

Login: < input type = "text" name = "username" > Lozinka :

depois de pressionar enviar dados inseridos é, então, enviado para a página userlogin.php que recebe e passa por uma consulta no banco de dados para verificar o nível de acesso do usuário tem e se ele entrou no nome de usuário e senha corretamente.

< ? $ username = $ _POST [ 'username' ]; $ password = $ _POST [ 'password' ]; $ query = "SELECT nome de usuário , senha FROM utilizadores WHERE username = '$ username' e senha = '$ senha '"; ? >

Esse tipo de formulário de login é aberta à exploração por ataques de injeção de MySQL . Para ter acesso ao site a qualquer usuário pode inserir o seguinte código: 'OR 1 = 1 - o nome de usuário e' OR 1 = 1 para senha

consulta vai ficar assim : $ query = "SELECT nome de usuário . , senha FROM utilizadores WHERE username = '' oR 1 = 1 - ' e senha ='' oR 1 = 1 ";

Esta consulta irá selecionar nome de usuário e senha de usuários onde não existem nomes de usuário ou senha ( '' parte) ou se um é igual a um. Como um é igual a um , em todos os casos, a segurança da base de dados fica comprometida . Dois traços antes apóstrofo foram adicionados para tornar MySQL ignorar apóstrofo que é agora redundante. Este é apenas um tipo de ataque usando injeção MySQL . Outra variação deste ataque é getaccess para mais informações do que é permitido ao usuário .

Agora olhar para um exemplo onde o proprietário do banco de dados está usando o seguinte queryto obter dados para exibição em informações da conta do usuário da página .

$ query = "SELECT * FROM utilizadores WHERE username = '$ nome '";

Se esse tipo de consulta não está protegido usuário mal-intencionado é capaz de input'OR 1 = 1 - a verificação de nome de usuário manual. $ query = "SELECT * FROM utilizadores WHERE username = '' OR 1 = 1 - '"; Esta consulta agora não vai selecionar apenas os dados do usuário , mas os dados de todos os usuários na tabela "usuários "
< br. >
proteção contra MySQL injeções

Há muitas maneiras de se proteger contra injeções MySQL . Na verdade injeções MySQL são ameaças só se o desenvolvedor ignorou a ameaça e falharam em proteger seu código. A maneira mais fácil de proteger contra injeções em PHP e MySQL combinação é usar a função PHP: . . ? " Mysql_real_escape_string "

Voltando ao primeiro exemplo <$ username = $ _POST [ 'username' ]; $ password = $ _POST [ 'password' ]; $ query = "SELECT nome de usuário , senha FROM utilizadores WHERE username = '$ username' e senha = '$ senha '"; ? >

Para se proteger contra injeções MySQL usos diretos de entradas do usuário deve befiltered através de " mysql_real_escape_string " . . ? Function " mysql_real_escape_string " escaparão todos os caracteres especiais MySQL removendo possibilidade de mudar o comportamento de nossa consulta

< $ username = mysql_real_escape_string ( $ _POST [ 'username' ]); $ password = mysql_real_escape_string ( $ _POST [ ,"'password' ]); $ query = "SELECT nome de usuário , senha FROM utilizadores WHERE username = '$ username' e senha = '$ senha '"; >


Anterior :

Próximo : No
  Os artigos relacionados
·Como editar um rodapé em PHP 
·Como alterar valores de matriz associativa em PHP 
·Wildcards e funções SQL 
·Como remover elementos de uma matriz em PHP 
·Como adicionar um driver do MySQL para VB.NET 
·Como corrigir o meu PHP Rand 
·Como converter uma matriz para uma String em PHP 
·Como criar novas entradas com PHP Quando o botão é pr…
·Como remover PHP mailto 
·Como exibir texto de MySQL no PHP 
  Artigos em destaque
·Como Criar Data objeto de String em Java 
·Falta Argumento 1 para o PHP 
·Código Java para principiantes 
·Como usar OpenGL com código de Blocos 
·Como inserir registros em Java 
·Como converter COBOL Em Fortran 
·Como desativar o PHP Register Globals no IX Web Hosting…
·Como Incorporar index.html no ColdFusion 
·Diferença entre as funções e sub-rotinas Fortran 
·Como determinar se o VBA foi modificada 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados