elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  mysql_real_escape_string no es suficiente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: mysql_real_escape_string no es suficiente  (Leído 13,518 veces)
USUARIO_DE_SOFTWARE_LIBRE

Desconectado Desconectado

Mensajes: 274


Ver Perfil WWW
mysql_real_escape_string no es suficiente
« en: 28 Agosto 2009, 01:50 am »

Hola. Siempre uso la función mysql_real_escape_string() de PHP para evitar inyecciones sql, entonces la uso en todas las variables $_GET y $_POST.
Me acabo de dar cuenta de que esta función permite inyección de código que no tiene comillas simples no dobles, por ejemplo:
http://ejemplo.com/index.php?id=%274
El "%274"  vale lo mismo que la comilla simple, entonces ya se puede inyectar sql en mi web!
También vi que se puede inyectar código poniendo una inyección sin comillas por ejemplo:
http://ejemplo.com/index.php?id=4 AND BENCHMARK(99999999,MD5(0x123123));
con "AND BENCHMARK(99999999,MD5(0x123123));" se genera un DoS en mi servidor, porque consume mucho procesador.
¿Existe una forma de que se limpien absolutamente todo tipo de inyección? Es decir, que no sea tan mala como mysql_real_escape_string que permite inyectar lo que mostré de ejemplo.
Muchas gracias de antemano :)
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
re
« Respuesta #1 en: 29 Agosto 2009, 19:37 pm »

https://foro.elhacker.net/nivel_web/como_evitar_la_inyeccion_sql-t252384.0.html

Siempre siempre siempre que utilizes el envío de variables a una query mysql debes encerrarlos en comillas dobles, es tan simple como eso y si es una variable que unicamente procesa integers debes hacerlo con (int).
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Funcionamiento de mysql_real_escape_string()
PHP
Gambinoh 5 10,720 Último mensaje 31 Diciembre 2010, 19:33 pm
por xassiz~
Problema cuando mysql_real_escape_string guarda las comillas « 1 2 »
PHP
dimitrix 10 6,541 Último mensaje 28 Enero 2012, 21:39 pm
por dimitrix
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines