Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
inyeccion sql
#1
hola quisiera evitar la famosa inyeccion sql

que puedo aser

ya hackearon 6 veces mi web ayudaa
#2
Pon el siguiente codigo en un archivo que este siempre en tu web como el index o algo asi
Código:
function limpiar($mensaje)
{
$mensaje = htmlentities(stripslashes(trim($mensaje)));
$mensaje = str_replace(")","",$mensaje);
$mensaje = str_replace("(","",$mensaje);
$mensaje = str_replace("'", "",$mensaje);
$mensaje = str_replace('"',"",$mensaje);
$mensaje = str_replace("$","",$mensaje);
$mensaje = str_replace("%%","",$mensaje);
$mensaje = str_replace("###","",$mensaje);
$mensaje = str_replace("`","",$mensaje);
$mensaje = str_replace("´","",$mensaje);
$mensaje = str_replace("<","",$mensaje);
$mensaje = str_replace(">","",$mensaje);
$mensaje = str_replace("*","",$mensaje);
$mensaje = str_replace("insert","",$mensaje);
$mensaje = str_replace("INSERT","",$mensaje);
$mensaje = str_replace("Insert","",$mensaje);
$mensaje = str_replace("iNsert","",$mensaje);
$mensaje = str_replace("inSert","",$mensaje);
$mensaje = str_replace("insErt","",$mensaje);
$mensaje = str_replace("inseRt","",$mensaje);
$mensaje = str_replace("insERt","",$mensaje);
$mensaje = str_replace("inserT","",$mensaje);
$mensaje = str_replace("select","",$mensaje);
$mensaje = str_replace("SELECT","",$mensaje);
$mensaje = str_replace("delete","",$mensaje);
$mensaje = str_replace("DELETE","",$mensaje);
$mensaje = str_replace("Delete","",$mensaje);
$mensaje = str_replace("from","",$mensaje);
$mensaje = str_replace("FROM","",$mensaje);
$mensaje = str_replace("From","",$mensaje);
$mensaje = str_replace("fRom","",$mensaje);
$mensaje = str_replace("frOm","",$mensaje);
$mensaje = str_replace("froM","",$mensaje);
$mensaje = str_replace("FroM","",$mensaje);
$mensaje = str_replace("fRoM","",$mensaje);
$mensaje = str_replace("frOM","",$mensaje);
$mensaje = str_replace("FROm","",$mensaje);
$mensaje = str_replace("UPDATE","",$mensaje);
$mensaje = str_replace("update","",$mensaje);
$mensaje = str_replace("WHERE","",$mensaje);
$mensaje = str_replace("where","",$mensaje);
$mensaje = str_replace("Where","",$mensaje);
$mensaje = str_replace("TRUNCATE","",$mensaje);
$mensaje = str_replace("truncate","",$mensaje);
$mensaje = str_replace("Truncate","",$mensaje);
$mensaje = str_replace("into","",$mensaje);
$mensaje = str_replace("INTO","",$mensaje);
$mensaje = str_replace("Into","",$mensaje);
$mensaje = str_replace("iNto","",$mensaje);
$mensaje = str_replace("inTo","",$mensaje);
$mensaje = str_replace("intO","",$mensaje);
$mensaje = str_replace("@@","",$mensaje);
$mensaje = str_replace("--","",$mensaje);
$mensaje = str_replace("database()","",$mensaje);
$mensaje = str_replace("á","&aacute;",$mensaje);
$mensaje = str_replace("é","&eacute;",$mensaje);
$mensaje = str_replace("í","&iacute;",$mensaje);
$mensaje = str_replace("ó","&oacute;",$mensaje);
$mensaje = str_replace("ú","&uacute;",$mensaje);
$mensaje = str_replace("ñ","&ntilde;",$mensaje);
$mensaje = str_replace("Á","&Aacute;",$mensaje);
$mensaje = str_replace("É","&Eacute;",$mensaje);
$mensaje = str_replace("Í","&Iacute;",$mensaje);
$mensaje = str_replace("Ó","&Oacute;",$mensaje);
$mensaje = str_replace("Ú","&Uacute;",$mensaje);
$mensaje = str_replace("Ñ","&Ntilde;",$mensaje);
return addslashes(mysql_real_escape_string($mensaje));
}
Metas:
[Listo] 1000 Suscriptores En YouTube
[Casi] 5,000 Seguidores En Taringa

Sigueme En Taringa

Interesante SOY Director en Producciones TPT  Interesante
WWW
#3
eso va dentro del .htacess

igualmente nos puedes decir en que esta basada tu web (cms) ó si es un sistema en html, etc
[Imagen: Bann.png]
WWW
#4
Ummm ¿y que es lo que hace exacgtmente ese codigo? ¿Sirve para mybb y para phpbb?
WWW
#5
papi escribió:Ummm ¿y que es lo que hace exacgtmente ese codigo? ¿Sirve para mybb y para phpbb?
Mmm no se nunca lo he probado en phpbb pero supongo que si sirve
y lo que hace es evitar la inyeccion SQL
Metas:
[Listo] 1000 Suscriptores En YouTube
[Casi] 5,000 Seguidores En Taringa

Sigueme En Taringa

Interesante SOY Director en Producciones TPT  Interesante
WWW
#6
Tamatsipatse escribió:lo que hace es evitar la inyeccion SQL
sí, eso ya me lo imagino ¿pero cómo? ¿Cuál es el proceso? ¿Qué es lo que hace cda fragmento de código? Perdona pero no entiendo el php, aunque soy muy curioso y me gusta saber el efecto que tiene cada código que se utiliza. De esa manera me da la sensación de que puedo aprender Guiño
WWW
#7
papi escribió:
Tamatsipatse escribió:lo que hace es evitar la inyeccion SQL
sí, eso ya me lo imagino ¿pero cómo? ¿Cuál es el proceso? ¿Qué es lo que hace cda fragmento de código? Perdona pero no entiendo el php, aunque soy muy curioso y me gusta saber el efecto que tiene cada código que se utiliza. De esa manera me da la sensación de que puedo aprender Guiño
Pues la inyeccion SQL se puede hacer insertando palabran en buscadores comentarias temas MPs etc lo que hace el codigo es evitar este tipo de inyeccion Guiño
Metas:
[Listo] 1000 Suscriptores En YouTube
[Casi] 5,000 Seguidores En Taringa

Sigueme En Taringa

Interesante SOY Director en Producciones TPT  Interesante
WWW
#8
Se está formando un buen lío conforme a esto :S

Si usas un cms estable y conocido como joomla, drupal, phpbb, mybb, smf, etc... no debes temer por las inyecciones sql. Un programador más o menos avispado es lo primero q tiene en consideración nada más desarrollar la primera versión de su aplicación. Las inyecciones sql NO son un problema a menos q uses un script muy básico.

Otra cosa, poniendo ese código que han publicado en tu cms no solucionarás NADA.

Explico rápidamente cómo se aplican las inyecciones sql:

Para aplicar una inyección sql es necesario introducir código sql en algún cuadro de texto de la web (buscadores, formularios de logueo, etc...) este código sql será procesado por la web y será combinado con el código sql nativo de la página web. Ambos ćodigos (el de la inyección y el nativo) formarán una única instrucción sql q devolverá un comportamiento. Desde borrar registros en la base de datos o hasta loguearse con un usuario determinado.

Bueno, pues como sabrán, en las instrucciones sql se usan caracteres tales como %&()=>< etc... q sirven como operadores, comparadores.... Pues justo lo q hace ese código es ELIMINAR esos caracteres de la cadena de texto introducida por el usuario. Pero OJO!! No lo hace automáticamente sino q tendremos q dirigirnos a todos y a cada uno de los lugares donde se procesen las entradas de texto en la web y llamar desde ahí a dicha función para q "limpie" la cadena de texto ANTES de q sea procesada por el cms.

Como verán, es una opción un tanto laboriosa para un cms ya diseñado. Pero muy útil si estás desarrollando tus propias aplicaciones en PHP.

Ah! una cosa más.... Existen funciones de php para evitar inyecciones sql q son más eficientes y reducidas. Por ejemplo:
mysql_real_escape_string()

Más sencillo no??
[Imagen: firmabp.jpg][Imagen: mineenlineaentregadispo.jpg]
WWW
#9
Minenage escribió:xisten funciones de php para evitar inyecciones sql q son más eficientes y reducidas. Por ejemplo:
mysql_real_escape_string()

Más sencillo no??
si mucho mas. Por cierto esa funcion se activa del lado del usuario o del lado del servidor?
WWW
#10
Como todo php, es de lado del servidor. Ejemplo práctico:

Con la función q antes se posteó más arriba habría q primero incluirla en algún archivo y referenciar dicho archivo en cada script php donde vayamos a usarlo con un
Código:
include ('mifuncion.php');
y luego llamar a dicha función en cada uno de los lugares donde se procese la recepción de datos de formularios. Algo así:
Código:
$usuario = $_POST['usuario']; // El valor de "usuario" del formulario se guarda en la variable $usuario
$usuario = limpiar($usuario); // Llamar a la función "limpiar" y guardar el resultado en variable $usuario

Con la función de php no sería necesario referenciar ningún archivo sino q símplemente se usaría dicha función:

Código:
$usuario = $_POST['usuario']; // El valor de "usuario" del formulario se guarda en la variable $usuario
$usuario = mysql_real_escape_string($usuario); // guardar el resultado de la función en variable $usuario

Cabe decir q existen más métodos para añadir a este de mysql_real_escape_string() y reforzar la seguridad pero, como digo, sólo tendríamos q tenerlo en cuenta si estamos desarrollando nuestra propia aplicación. Si sólo somos meros usuarios... sólo deberíamos preocuparnos de estar usando la última versión del cms y q dicho cms sea estable y bien desarrollado.
[Imagen: firmabp.jpg][Imagen: mineenlineaentregadispo.jpg]
WWW


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Inyección de código malicioso en páginas webs papi 17 1.576 28-05-2012, 10:35 AM
Último mensaje: bigposts
  pregunta inyeccion mauro770 6 900 09-10-2009, 08:10 PM
Último mensaje: mauro770



Usuarios navegando en este tema: 1 invitado(s)