Jump to content
cristianvar

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:

 

 

 

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

 

 

Saludos.

Compartir esta publicación


Enlace a la publicación
Compartir en otros sitios

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.

Compartir esta publicación


Enlace a la publicación
Compartir en otros sitios

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!

Compartir esta publicación


Enlace a la publicación
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!

Compartir esta publicación


Enlace a la publicación
Compartir en otros sitios

Crear una cuenta o conéctate para comentar

Tienes que ser miembro para dejar un comentario

Crear una cuenta

Regístrese para obtener una cuenta nueva en nuestra comunidad. ¡Es fácil!

Registrar una nueva cuenta

Conectar

¿Ya tienes una cuenta? Conéctate aquí.

Conectar ahora


  • Recientemente navegando por este tema   0 miembros

    No hay usuarios registrados visitando esta página.

×