Jump to content

Función para evitar inyecciones SQl con PHP


Recommended Posts

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.

Link to comment
Share on other sites

  • 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.

Link to comment
Share on other sites

  • 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!

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...