[TUTORIAL] Função Anti-Inject

_kinght_

Honrado XPZ
25 de Dezembro de 2010
274
49
28
24
Bom pessoal hoje venho trazer para vocês uma pequena função que identifica e remove palavras reservadas Sql

Bom sintam-se a vontade para modificar  a função abaixo, ela pode e deve ser melhorada


function antiInject($string){

// remove palavras que contenham sintaxe sql
$string = preg_replace("/(from|select|insert|delete|where|drop table|show tables|#|*|--|)/i","",$string);
$string = trim($string);//limpa espaços vazio
$string = strip_tags($string);//tira tags html e php
if(!get_magic_quotes_gpc())
$string = addslashes($string);//Adiciona barras invertidas a uma string
return $string;
}

Bom a função acima recebe uma string como parâmetro e faz a verificação caso tenha alguma palavra reservada sql será removida e no final é retornado o uma string sem nenhuma palavra reservada.

Como usar:


//resgata o nome do formulário
$nome = $_POST['nome'];

//passa por parâmetro o nome para a verificação
antiInject($nome);

//ou simplesmente
$nome = antiInject($_POST['nome']);

Como podem ver é muito fácil de se utilizar basta passar a variável que recupera o campo do formulário por parâmetro e a função irá remover as palavras reservadas do SQL simples assim façam bom uso.

Bom venho a repetir a função pode e deve ser melhorada ou modificada ao seu gosto.

Dúvidas, problemas, sugestões comentem abaixo se gostaram mandem um LIKE se não gostaram também mandem um LIKE e comentem o que não gostaram sem xingar loucamente


créditos:

              _kinght_

OBS: Tutorial / Dica feito exclusivamente para XPZone.net, caso alguém resolva publicar esse post em outro fórum coloque os créditos de quem criou o tópico no caso eu "_kinght_" e de qual fórum você copiou o post "xpzone.net".
 
Editado por um moderador:

abuzado

aBuZaDo
Legendário XPZ
26 de Janeiro de 2011
2,748
581
133
26
[DUVIDA]- ONDE EU PONHO ISSO ? ^^

@Post parabéns pelas iniciativas .
 
Editado por um moderador:

_kinght_

Honrado XPZ
25 de Dezembro de 2010
274
49
28
24
Onde você quiser caso já tenha um arquivo que contenha funções basta colocar lá se não basta criar um...

e para chamar ele na página basta colocara um require_once "diretório/nome_do_arquivo.php";

e usar como mostrei acima ^^
 
  • Like
Reactions: abuzado

Depeche

Honrado XPZ
16 de Outubro de 2013
209
19
0
_kinght_

Knight uso site daldegan template dllgames estou com problemas de inject no sql pelo mozila . já coloquei um ant inject que encontrei pela internet mas pelo visto não funcionou a pessoa que está me atacando encontrou outra forma de dar inject no meu site ...

queria testar esse ant inject seu , mas não entendi muito bem .. quero saber aonde tenho que colocar esse comando para que o problema do inject seja resolvido

imagino que seja na header.tpl.php , 

pode explicar melhor como colocar ela em seu website ?
 

_kinght_

Honrado XPZ
25 de Dezembro de 2010
274
49
28
24
Amigo função ou classe anti-Inject não é algo que você apenas joga e um arquivo e esta tudo certo...

Bom crie um arquivo .php onde você achar melhor ou caso sua web tenha um arquivo de funções coloque lá por questão de organização, caso você saiba por qual entrada de dados estão conseguindo usar o Inject procure a variável responsável pelo campo.

Você vai encontrar algo do tipo:


$variavel = $_POST['campo_da_web'];

Para o usar a função que mostrei acima basta fazer o seguinte:


$variavel = antiInject($_POST['campo_da_web']);

Outra coisa, não se faz Inject com Browser.
 

Depeche

Honrado XPZ
16 de Outubro de 2013
209
19
0
eu fiz uma da seguinte forma :

coloquei para ler o arquivo inject.tpl.php

na header.tpl.php

<script type="text/antinject" src="templates/dllgames/antinject.php"></script>
e no arquivo inject.php

ta os seguintes codigos :

   function anti_injection($sql)

    {

    // remove palavras que contenham sintaxe sql

    $sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|*|--|)/"),"",$sql);

    $sql = trim($sql);//limpa espaços vazio

    $sql = strip_tags($sql);//tira tags html e php

    $sql = addslashes($sql);//Adiciona barras invertidas a uma string

    return $sql;

    }

    //modo de usar pegando dados vindos do formulario

    $nome = anti_injection($_POST["nome"]);

    $senha = anti_injection($_POST["senha"]);

    ?>

 
 

_kinght_

Honrado XPZ
25 de Dezembro de 2010
274
49
28
24
Para começar arquivo php não é carregado dessa maneira...

Você deve usar require_once ou include e como falei acima não basta apenas jogar em um arquivo e esta tudo certo...você terá que usar a função para tratar o campo que esta desprotegido.
 

_kinght_

Honrado XPZ
25 de Dezembro de 2010
274
49
28
24
Rapaz você teria que ter um minimo de conhecimento em PHP, mais explicado que isso acho que não da...
 

webdesignergleyson

Novato XPZ
12 de Dezembro de 2013
7
1
0
Gostei codigo bem simples mais bastante funcional em 9 linhas  eo código funciona bem, já fiz um anti-injection de 100 linhas agora o seu está bem seguro também.
 

Wantedd

Honrado XPZ
9 de Outubro de 2013
153
158
43
Só que essa função vai corrigi o inject de todas as formas, o que foi postado é um método bem simples e funcional para o método post 
 
Editado por um moderador:

WalaceR

Delta XPZ
11 de Maio de 2014
553
998
93
23
tanbem uso mu site dll games e tem mesmo esse problema de inject so que ate agora nao consegui resolver  com esse tutorial ai muito menos da pra entender nada