• Home
  • 1000 Efectos jQuery
  • 1000 Estilos Css
  • Foro
  • Freelance
  • Herramientas Web
  • Tu Granito de Arena!!
  • ZoneArtCss Móvil

Defender tu web de posibles inyecciones Mysql

Obtén una cuenta de @zoneartcss.com gratuita
Registrarse
Ver correo
Jul 10


protegete de inyecciones a tu base de datos

Cuando programamos en php y hacemos paginas a la ligera, habeses cometemos el error de no ponerles seguridad y con simples inyecciones Mysql te dañan tu web usuario “buena onda” jaja :(

En pura mezcla de codigos de Internet y un poco de mi cosecha algo sencillo hice este para que les ayudara a evitar ese tipo de daños.

El archivo lo puedesponer en cada pagina de tu web con un

El codigo utiliza 2 tablas en mysql:
- Una es la lista negra
- Es la lista temporal

Este codigo consiste en que cuando el usuario intenta hacer una inyeccion mysql se detecta verifica si re encuentra su ip en la tabla temporal si esta mas de tres veces guardada su ip(Esto queire decir qeu ya hiso mas de tres intentos para tratar de fregar tu web) entonces lo banea osea lo manda a la lista negra y desde ese momento no podrá haceder a tu web.

Es muy Util espero que les agrade!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?php
// Conexion a la base de datos
$server="";
$usuario="";
$pass="";
$db="";
$link=mysql_connect($server,$usuario,$pass)or die (exit(mysql_error()));
mysql_select_db($db);
/////////////////////////////////////////
 
//Detectando ip de usuario
$ips=$_SERVER['REMOTE_ADDR'];
//Correo que se va a reportar el tipo de inyección
$report_to = "contacto@zoneartcss.com";
//Archivo log que se crea en tu servidor de todas las inyecciones
$_log_file="reportes_hack";
 
//hacemos una consulta a nuestra tabla de lista negra para verificar si la ip ya esta en dicha lista
$query = "SELECT * FROM 354_ip_black_list WHERE ip='".$ips."'";
$result = mysql_query($query, $link);
 
// si hay resultados entonces te bloquea y ya no puede el usuario acceder a tu web con esa ip
if(mysql_num_rows($result)) {
  while($row = mysql_fetch_row($result))
  {
		print '<body onLoad="history.go(+1)">';
		print "<script>alert('NO tienes Permitido el acceso a este portal.');</script>";
		die ("Baneado");
  }
}else{
 
//Funcion para detectar el intento de inyeccion MysQl
function smeprotect($a)
{
    global $report_to ,$_log_file;
	//En esta array agragamos todas las sentencias de mysql que no esten permitidas que el usuario escriba en la barra de direcciones de tu web
    $bad_str = array("content-type:","charset=","mime-version:","multipart/mixed","bcc:","insert", "select", "update", "delete", "distinct", "having", "truncate", "replace","handler", "like", "procedure", "limit", "order by", "group by","table");
    $suspect_found = false;
	//Se hace la busqueda de la palabras en el post de la direccion mandada
    foreach($bad_str as $suspect)
      {
    if(eregi($suspect, strtolower($a)))
	  {
	 //Detecta qeu tipo de usuario es el que esta haciendo la inyeccion Mysql
    $ip = (empty($_SERVER['REMOTE_ADDR'])) ? 'empty' : $_SERVER['REMOTE_ADDR'];
    $rf = (empty($_SERVER['HTTP_REFERER'])) ? 'empty' : $_SERVER['HTTP_REFERER'];
    $ua = (empty($_SERVER['HTTP_USER_AGENT'])) ? 'empty' : $_SERVER['HTTP_USER_AGENT'];
    $ru = (empty($_SERVER['REQUEST_URI'])) ? 'empty' : $_SERVER['REQUEST_URI'];
    $rm = (empty($_SERVER['REQUEST_METHOD'])) ? 'empty' : $_SERVER['REQUEST_METHOD'];
 
	$suspect_found = true;
    $a = eregi_replace($suspect, " (>>><strong>".$suspect."</strong><<<) ", $a);
 
    if(!empty($report_to))
      {
	  //Aqui ya detectamos que el usuario si hiso una inyeccion Msql
		$link=mysql_connect($server,$usuario,$pass)or die (exit(mysql_error()));
		mysql_select_db($db);
	//Hacemos una consulta  a otra tabla llamada  354_ip_list_temporal que dicha tabla es la temporal si el usuario ya trato de hacer la inyeccion mas de 3 veces entonces lo mandara a la lista negra y ya no tendra haceso al portal
	  $query3 = "SELECT * FROM 354_ip_list_temporal WHERE ip='".$ip."'";
	  $result1 = mysql_query($query3, $link);
 
 
	  $fecha=date('Y-n-j');
	  // mayos a 3 veces
	  if(mysql_num_rows($result1)>2){  
 
		  $queryx = "INSERT INTO 354_ip_black_list VALUES('".$ip."', '".$fecha."')";
		  mysql_query($queryx);
		  print "Lo sentimos pero eres una mala persona :(</b>";
		  print "<script>alert('Agregado a la Lista Negra');</script>";
		  exit;
 
 
	  }else{
	  // Si no esta mas de 3 veces entonces agraga un nuevo registro a la tabla temporal de si ip y lo renvia a la pagina principal
	  	$queryx2 = "INSERT INTO 354_ip_list_temporal VALUES('".$ip."', '".$fecha."')";
		mysql_query($queryx2);
		die ("<script>window.location = 'http://www.zoneartcss.com'</script>");
		exit;
	  }
 
	// te envia una notificación de todo lo sucedido a tu correo
    @mail($report_to,"[ABUSE] NOTIFICATION @ " .$_SERVER['HTTP_HOST'] . " by " . $ip,"possible abuse @ " .$_SERVER['HTTP_HOST'] . " by " . $ip ." (" . date('d/m/Y H:i:s') . ")\n\n" ."IP/HOST : " . $ip . "\n\n" ."USER AGENT : " . $ua . "\n\n" ."REFERER : " . $rf . "\n\n" ."REQUEST URI : " . $ru . "\n\n" ."REQUEST METHOD : " . $rm . "\n\n" ."SUSPECT String: " . $a . "\n\n\n\n--","From:".$report_to."\nMessage-ID: <".date("YmdHis")."@".$_SERVER['SERVER_NAME'].">\nMime-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 7bit");
      } 
//Se crea el archivo de acceso y se escribe los datos sucedidos
    if(!empty($_log_file))
      {	
    if (is_writable($_log_file))
	  {
    $fp = fopen("$_log_file","a");
	$string = "".date('d/m/Y H:i:s')."|$ip|$rf|$ua|$ru|$rm|$a\n";
 
	fwrite($fp, $string); 
    fclose($fp);
	  }
      }	
    die("");
 
      }
      }
 
}
 
foreach ($_GET as $value)
{
    smeprotect($value);
}
 
foreach ($_POST as $value)
{
    smeprotect($value);  
}
}
 
///Fin del codigo
?>

Deja tu Comentario o Duda!!!

Pero antes te dejo otro tipo de Inyección.. Es la Inyeccion Terrorifica (6)






Compartir   votar
¿Te gusto este tema?
Recibe en tu correo las ultimas actualizaciones

Escribe tu correo:

Recibirás un correo con todos los articulos escritos en ZoneArtCss durante el día.
Posted in Programación con Style, Seguridad Web. on Viernes, Julio 10th, 2009 by miguelortega Tags: 100% seguro, acceso denegado, anti_hack, evitar, haker, inyeccion, inyeccion mysql, inyecciones Mysql, jakear tu web, no virus, post ilegales, seguridad

Leave a Reply

Security Code:

ZoneArtCSS | Tu lugar: Del Arte CSS

  • Encuesta

    ¿El hosting en México es?

    View Results

    Loading ... Loading ...
    • Polls Archive
  • Buscador
  • Suscribete
    Escribe tu correo:

    Recibirás un correo con todos los articulos escritos en ZoneArtCss durante el día.








  • Lo Último

    Septiembre mes de los Dominios .MXSeptiembre mes de los Dominios .MX   Operadores lógicos en PHPOperadores lógicos en PHP   DeviantART - Diseños onlineDeviantART - Diseños online   Top 10 de Lenguajes de Programación Agosto 2010Top 10 de Lenguajes de Programación Agosto 2010   Nuevo Filezilla 3.3.4 disponible Nuevo Filezilla 3.3.4 disponible  


  • Ideas
  • Archivos
  • Comentarios
  • Populares
ajax alex aguiar cms codigo CSS Curl diseño efecto estilo facebook facil firefox fireworks fix flash gallery google gratis html iconos gratis ie6 i hate photoshop images Javascript jQuery js libreria liz palacios manual menu miguelortega miguel ortega Mootools php plugin problema solucion style Themes para dedalus tutorial Twitter video web wordpress zoneartcss
  • Septiembre 2010
  • Agosto 2010
  • Julio 2010
  • Junio 2010
  • Mayo 2010
  • Abril 2010
  • Marzo 2010
  • Febrero 2010
  • Enero 2010
  • Diciembre 2009
  • Noviembre 2009
  • Octubre 2009
  • Septiembre 2009
  • Agosto 2009
  • Julio 2009
  • Junio 2009
  • Subdominios con php y .htaccess  4
    yacteka, miguelortega, Eddy Efrain Luque Callata, Luis
  • Navegar por internet gratis desde celular o móvil con telcel  684
    Frederic, celeste, Omar, Omar, sei, isac [...]
  • position:fixed para Internet Explorer 6  4
    LuisAdrian, miguelortega, Jorge Raigoza, henry
  • [ThemeDedalus] Sunrise2-Art  2
    miguelortega, PPUMAS
  • Redimensionar imagen de fondo [Elastico] con CSS  2
    miguelortega, bernardo campillo
  • Navegar por internet gratis desde celular o móvil con telcel {685}
  • Popin - Plugin jQuery para Pop-Ups {27}
  • Crear tu aplicación del facebook {18}
  • Personalizar en menú que sale cuando das clic secundario con JavaScript {16}
  • Beautiful Slide con jQuery {14}


  • Categorías
  • RSS Twitter
    Zoneartcss
    • Septiembre mes de los Dominios .MX http://goo.gl/fb/hLdqV 01:00:40 PM Septiembre 06, 2010 desde Google
    • RT @dmedina: yeah! mi esposa fue a ver si por fin ya podemos sacar el iPhone 4 :D mas bien la mande jajaja// eso es!!! asi se hace :P 11:09:50 AM Agosto 31, 2010 desde TweetDeck
    • RT @lizpalacios5: @zoneartcss pide incapacidad /// ajaj awech.. 09:38:57 AM Agosto 31, 2010 desde TweetDeck
    • @lizpalacios5 sip de la fregada me mueeeeeeerrrrrrrrrrrrrrroooooooooooo 09:19:22 AM Agosto 31, 2010 desde TweetDeck en respuesta a lizpalacios5
  • Enlaces
    • Bienes Raices en Mérida
    • Blog SexyTec
    • Desarrollo Web
    • Descargas para Celular
    • Frogx3
    • Hosting en Mexico
    • Noticias en Cozumel
    • Playeras y Uniformes
    • SexyTec.net
    • WebAdictos
Alterblogs Posts
  • La tendencia para este verano – Bolsas Transparentes por Prada
  • Las Aparicio – Gran serie que plantea las incógnitas que a diario se hacen las mujeres
  • Como descargar videos de YouTube
  • Trucos para FarmVille, y todo lo que debes tener en cuenta
  • Ford Mondeo 2011
  • Mazda Shinari Concept
  • Corona Music Fest Veracruz este 23 de Abril 2010
  • Expo Ganadera Ylang Ylang 2010 del 21 de mayo al 6 de junio Veracruz
  • Home
  • 1000 Efectos jQuery
  • 1000 Estilos Css
  • Foro
  • Freelance
  • Herramientas Web
  • Tu Granito de Arena!!
   

Back to Top

© Copyright ZoneArtCSS | Tu lugar: Del Arte CSS. All rights reserved.
Designed by FTL Wordpress Themes brought to you by Smashing Magazine

  • Blogalaxia
  • http://www.wikio.es
  • TOP Bitacoras.com