Olá!
Bom, primeiramente, oque é SQL Injection?
LEMBRANDO QUE:
Como OTServ's usa MySQL & PhpMyAdmin, não é muito necessário estar utilizando os AntiSQL, não é "necessário" mais é "bom" prevenir, pois talvez seu site tem alguma falhinha de SQL Injection por cmd e você não sabe, então é bom prevenir, Se for Gesior ACC, é bom estar utilizando apenas "uma" função, não use várias para não entrar em conflito, isso pode prejudicar e falhar as seguranças do site.
Aqui abaixo eu vou postar as mais usadas formas de proteger contra isso, pode ser inserida no seu Layout.php ou através de Include no PHP se o arquivo for necessário use no index.php:
<?php
include "nomedoarquivo.php";
?>
Metodo 1 (Hard) (Criamos um Arquivo Antisql.php)
<?php
$xa = getenv('REMOTE_ADDR');
$badwords = array(";","'","\"","*","union","x:","x:\#","delete ","///","from|xp_|execute|exec|sp_executesql|sp_|select|update|set|shutdown|insert|delete|where|drop table|show tables|#|\*|","DELETE","insert",","|"x'; U\PDATE Character S\ET level=99;-\-","x';U\PDATE Account S\ET ugradeid=255;-\-","x';U\PDATE Account D\ROP ugradeid=255;-\-","x';U\PDATE Account D\ROP ",",W\\HERE 1=1;-\\-","z'; U\PDATE Account S\ET ugradeid=char","update","drop","sele","memb","set" ,"$","res3t","wareh","%","--");
foreach($_POST as $value)
foreach($badwords as $word)
if(substr_count($value, $word) > 0)
die("Você informou caracter(es) especial que não são permitidos.<br />Por favor, volte e modifique esta expressão. <br>Por segurança, seu IP foi gravado no sistema. --> $xa<br><br> Equipe eSecurity Team by Igor Pereira");
?>
Metodo Hard (Criamos um arquivo Anti_sql.php)
Esse metodo o Forum não deixou eu postar, mais como sou legal, postarei o Download! Clique aqui.
Metodo Basic (Criamos um arquivo sqlinjecbasic.php)
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$script = $_SERVER[PATH_TRANSLATED];
$fp = fopen ("secure/sql_Injections.txt", "a+");
$sql_inject_1 = array(";","'","%",'"'); #Whoth need replace
$sql_inject_2 = array("", "","","""); #To wont replace
$GET_KEY = array_keys($_GET); #array keys from $_GET
/*begin clear $_GET */
for($i=0;$i<count($GET_KEY);$i++){
$real_get[$i] = $_GET[$GET_KEY[$i]];
$_GET[$GET_KEY[$i]] = str_replace($sql_inject_1, $sql_inject_2, HtmlSpecialChars($_GET[$GET_KEY[$i]]));
if($real_get[$i] != $_GET[$GET_KEY[$i]]){
if($_SESSION['user']){
fwrite ($fp, "Username: ".$_SESSION['user']."\r\n");
}
$msg = "SQL Injection detectado. Seu IP foi salvado!"; alert($msg);
fwrite ($fp, "IP: $ip\r\n");
fwrite ($fp, "Method: GET\r\n");
fwrite ($fp, "Value: $real_get[$i]\r\n");
fwrite ($fp, "Script: $script\r\n");
fwrite ($fp, "Time: $time\r\n");
fwrite ($fp, "==================================\r\n");
redirect("index.php");
}
}
fclose ($fp);
/*end clear $_GET */
?>
Metodo Normal (Muito bom, criamos um arquivo easyinject.php)
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$script = $_SERVER[PATH_TRANSLATED];
$fp = fopen ("secure/sql_Injections.txt", "a+");
$sql_inject_1 = array(";","'","%",'"'); #Whoth need replace
$sql_inject_2 = array("", "","","""); #To wont replace
$GET_KEY = array_keys($_GET); #array keys from $_GET
/*begin clear $_GET */
for($i=0;$i<count($GET_KEY);$i++){
$real_get[$i] = $_GET[$GET_KEY[$i]];
$_GET[$GET_KEY[$i]] = str_replace($sql_inject_1, $sql_inject_2, HtmlSpecialChars($_GET[$GET_KEY[$i]]));
if($real_get[$i] != $_GET[$GET_KEY[$i]]){
if($_SESSION['user']){
fwrite ($fp, "Username: ".$_SESSION['user']."\r\n");
}
$msg = "SQL Injection detectado. Seu IP foi salvado!"; alert($msg);
fwrite ($fp, "IP: $ip\r\n");
fwrite ($fp, "Method: GET\r\n");
fwrite ($fp, "Value: $real_get[$i]\r\n");
fwrite ($fp, "Script: $script\r\n");
fwrite ($fp, "Time: $time\r\n");
fwrite ($fp, "==================================\r\n");
redirect("index.php");
}
}
fclose ($fp);
/*end clear $_GET */
?>
Metodo Normal (Não deixa passar caracters invalidos, criar um arquivo anticaractinject.php)
<?php
/**
Dont Remove this
the perfect defense for 2010, the Venix/X1478--
*/
$xa = getenv('REMOTE_ADDR');
$badwords = array(";","'","\"","*","union","x:","x:\#","delete ","///","from|xp_|execute|exec|sp_executesql|sp_|select| insert|delete|where|drop table|show tables|#|\*|","DELETE","insert",","|"x'; U\PDATE Character S\ET level=99;-\-","x';U\PDATE Account S\ET ugradeid=255;-\-","x';U\PDATE Account D\ROP ugradeid=255;-\-","x';U\PDATE Account D\ROP ",",W\\HERE 1=1;-\\-","z'; U\PDATE Account S\ET ugradeid=char","update","drop","sele","memb","set" ,"$","res3t","wareh","%","--","666.php","666","/(shutdown|from|select|update|character|clan|set|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/");
foreach($_POST as $value)
foreach($badwords as $word)
if(substr_count($value, $word) > 0)
die("<script>alert('Não Use Caracters Invalido!'); location='javascript:history.back()'</script>");
?>
SQL Check (Criamos um arquivo sqlcheck.php)
<?
$bloquiados = array(";","\"","%","'","+","#","$","--","==","webzen");
foreach($_POST as $valor)
{
foreach($bloquiados as $bloquiados2)
{
if(substr_count(strtolower($valor), strtolower($bloquiados2)) > 0)
{
die("<div align=\"center\">
<p><br>
<p> </p>
<p> </p>
<img src=\"images/no-page.gif\" /><br />
<br />
<span class=\"textbox style20\">Não use Caracteres Especiais! </span></p>
<p><br />
<a href=\"javascript: history.back(-1);\" class=\"style30\">Voltar</a></p>
</div>");
}
}
}
foreach($_GET as $valor)
{
foreach($bloquiados as $bloquiados2)
{
if(substr_count(strtolower($valor), strtolower($bloquiados2)) > 0)
{
die("<div align=\"center\">
<p><br>
<p> </p>
<p> </p>
<img src=\"images/no-page.gif\" /><br />
<br />
<span class=\"textbox style20\">Não use Caracteres Especiais! </span></p>
<p><br />
<a href=\"javascript: history.back(-1);\" class=\"style30\">Voltar</a></p>
</div>");
}
}
}
foreach($_COOKIE as $valor)
{
foreach($bloquiados as $bloquiados2)
{
if(substr_count(strtolower($valor), strtolower($bloquiados2)) > 0)
{
die("<div align=\"center\">
<p><br>
<p> </p>
<p> </p>
<img src=\"images/no-page.gif\" /><br />
<br />
<span class=\"textbox style20\">Não use Caracteres Especiais! </span></p>
<p><br />
<a href=\"javascript: history.back(-1);\" class=\"style30\">Voltar</a></p>
</div>");
}
}
} ?>
Enjoy! and comment.