Ir para conteúdo
  • Cadastre-se

Modo Hard (Anti SQL Injection)


Posts Recomendados

Olá!

Bom, primeiramente, oque é SQL Injection?

O SQL Injection é um ataque que visa enviar comandos nocivos à base de dados através de campos de formulários ou através de URLs. Um ataque bem-sucedido pode, por exemplo, apagar  uma tabela do banco, deletar todos os dados da tabela ou até adquirir senhas que estejam cadastradas.

 

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("", "","","&quot;"); #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("", "","","&quot;"); #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>&nbsp;</p>
  <p>&nbsp;</p>
    <img src=\"images/no-page.gif\" /><br />
    <br />
      <span class=\"textbox style20\">N&atilde;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>&nbsp;</p>
  <p>&nbsp;</p>
    <img src=\"images/no-page.gif\" /><br />
    <br />
      <span class=\"textbox style20\">N&atilde;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>&nbsp;</p>
  <p>&nbsp;</p>
    <img src=\"images/no-page.gif\" /><br />
    <br />
      <span class=\"textbox style20\">N&atilde;o use Caracteres Especiais! </span></p>
  <p><br />
    <a href=\"javascript: history.back(-1);\" class=\"style30\">Voltar</a></p>
</div>");
		}
	}
} ?>

Enjoy! and comment.

DEDICADO BRASIL

Professional Internet Datacenter

banner_divulgativo_468x60.gif

 

Tudo oque você precisa para ter certeza de que não há nada que vai estragar teus planos em seu projeto Gamer/Engine, nós somos uma empresa qualificada em Segurança em servidores, obtemos técnicos especializados, que possam lhe alertar sobre qualquer falha que você esteja sofrendo.

 

- Visite o site

Link para o post
Compartilhar em outros sites
  • 7 months later...

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("", "","","&quot;"); #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("", "","","&quot;"); #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>&nbsp;</p>
  <p>&nbsp;</p>
    <img src=\"images/no-page.gif\" /><br />
    <br />
      <span class=\"textbox style20\">N&atilde;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>&nbsp;</p>
  <p>&nbsp;</p>
    <img src=\"images/no-page.gif\" /><br />
    <br />
      <span class=\"textbox style20\">N&atilde;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>&nbsp;</p>
  <p>&nbsp;</p>
    <img src=\"images/no-page.gif\" /><br />
    <br />
      <span class=\"textbox style20\">N&atilde;o use Caracteres Especiais! </span></p>
  <p><br />
    <a href=\"javascript: history.back(-1);\" class=\"style30\">Voltar</a></p>
</div>");
		}
	}
} ?>

Enjoy! and comment.

Nao entendi bem, voce complico um pouco isso ai, eu nao sei qual instalar aqui, metodo 1 ou metodo basic ou metodos...tem como vc organizar melhor o topico nao amigo, para um melhor entendimento?

Preciso colocar anti-sql para me prevenir melhor, Obrigado.

 

                                                           

55f6tc.gif                     

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo