Jump to content

Función para evitar inyecciones SQl con PHP


Mensajes recomendados

Bueno, muchas veces me he topado con un monton de webs con una pequeña vulnerabilidad que permite realizar inyecciones de código SQL por medio de un formulario (ya sea el de registro, el de login u otros) o utilizando la barra de direcciones (osea, el método GET). Esto permite al atacante, acceder a la base de datos y modificar (editar, eliminar, etc) cualquier contenido que haya en ella.

 

Para evitar este tipo de ataques vamos a utilizar una pequeña función que sustituye todos los carácteres especiales para ejecutar sentencias SQL y, ya que estamos, también eliminamos cualquier tipo de etiqueta HTML que haya de por medio.

 

Vamos a ver la función:

 

#Edito: el código estaba mal, la función es mysql_real_escape_string(), no mysql_real_string(). Pequeño error, pero ya lo corregí.

 

<?php
function limpiar($contenido)
{
	$contenido = strip_tags($contenido);
	$contenido = mysql_real_escape_string($contenido);
	return $contenido;
}
?>

Para ponerlo a funcionar podríamos utilizar este ejemplo:

 

<?php
$usuario = limpiar($_POST['usuario']);
?>

O, si utlizamos el método GET, podemos usar este código:

 

<?php
$usuario = limpiar($_GET['usuario']);
?>

 

Todo el tema de seguridad es muy importante a la hora de crear una página web, y aún más si es para un servidor de Metin2, ya que hay mucha gente ociosa a la que le divierte fastidiar.

 

A los que les interese todo el tema de seguridad, pueden ver esta guía en PDF bastante útil:

Debes iniciar sesión para ver el contenido del enlace en esta publicación.

 

 

 

Espero que os sirva esto y si teneis alguna duda, estaré encantado de intentar ayudaros en lo que pueda.

 

 

Saludos.

Enlace para comentar
Compartir en otros sitios

  • 2 weeks later...
  • 2 weeks later...
  • 5 weeks later...

gracias por la guia supongo q es en la pagina web donde metes los codigos o explicate x favor

 

Sí, es en la web. No tiene ningún estilo, pero la intención es que cada uno lo personalice como quiera.

 

De todas formas, esta guía NO la hice para usuarios novatos, la hice para los que ya tienen algún conocimiento del lenguaje PHP.

Enlace para comentar
Compartir en otros sitios

  • 1 month later...
  • 3 weeks later...

Muy buen aporte.

Me gustaría añadir que con esto no se soluciona 100% los problemas con la web. Hay muchos métodos mediante el cual una web puede ser "hackeada" y los cuales también tienen parches. Pero esto, que sepáis, es el juego del gato y el ratón.

Como dije, muy buen aporte, aunque hoy en día si el que ha programado una página es buen programador, ésto es una de las cosas que le salen "como andar".

Un saludo!

Enlace para comentar
Compartir en otros sitios

Exacto, pero yo, por ejemplo, cuando recién empecé con PHP y MySQL, no conocía esto, y como ningún trabajo de los que hacía era para algún proyecto importante, nunca me molesté en buscar vulnerabilidades y soluciones en mis scripts.

 

Un saludo!

Enlace para comentar
Compartir en otros sitios

Unirse a la conversación

Puedes publicar ahora y registrarte más tarde. Si tienes una cuenta, regístrate para publicar con su cuenta.

Guest
Responder a este tema...

×   Has pegado contenido con formato .   Eliminar formato

  Only 75 emoji are allowed.

×   Tu enlace se ha incorporado automáticamente.   Mostrar un enlace en su lugar

×   Se ha restaurado el contenido anterior. .   Borrar editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recientemente navegando por este tema   0 miembros

    • No hay usuarios registrados visitando esta página.
×
×
  • Crear nuevo...