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)
| | | | |-+  Esto previene inyeccion sql if(!ereg("^[a-zA-Z0-9_\.-]+$", trim($user))) ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Esto previene inyeccion sql if(!ereg("^[a-zA-Z0-9_\.-]+$", trim($user))) ?  (Leído 6,738 veces)
sissi

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Esto previene inyeccion sql if(!ereg("^[a-zA-Z0-9_\.-]+$", trim($user))) ?
« en: 8 Abril 2011, 02:42 am »

La pregunta es por si uso en php algo como

if(!ereg("^[a-zA-Z0-9_\.-]+$", trim($user)))
{
no realizar query
}
else
{
realizar query (select usuario,password from  usuarios where usuario='$user')
}

es suficiente para impedir inyeccion sql.

De antemano gracias.
« Última modificación: 8 Abril 2011, 02:46 am por sissi » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Esto previene inyeccion sql if(!ereg("^[a-zA-Z0-9_\.-]+$", trim($user))) ?
« Respuesta #1 en: 8 Abril 2011, 03:22 am »

Citar
Código
  1. int ereg ( string $pattern , string $string [, array &$regs ] )
Warning
Esta función ha sido declarada OBSOLETA desde PHP 5.3.0. Su uso está totalmente desaconsejado.


--

Código
  1. int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
:http://www.php.net/manual/es/function.preg-match.php
En línea

Te vendería mi talento por poder dormir tranquilo.
sissi

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Esto previene inyeccion sql if(!ereg("^[a-zA-Z0-9_\.-]+$", trim($user))) ?
« Respuesta #2 en: 8 Abril 2011, 05:50 am »

Ok es obsoleta pero previenen o no inyeccion sql?

if(preg_match("/^[a-zA-Z0-9_\.-]+$/", trim($user))==0)
{
no realizar query
}
else
{
realizar query (select usuario,password from  usuarios where usuario='$user')
}
« Última modificación: 8 Abril 2011, 05:57 am por sissi » En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Esto previene inyeccion sql if(!ereg("^[a-zA-Z0-9_\.-]+$", trim($user))) ?
« Respuesta #3 en: 8 Abril 2011, 14:20 pm »

Bueno, en este caso si funciona xD, ya que la forma para manipular la SQL seria insertando comillas simples y no se permiten... Te recomiendo que uses la expresiones regulares en casos especifico ya que pudieras usar otras funciones que serian mas rápido...

También te recomiendo que trates de hacer tus propios patrones, pueda que tomes uno por Internet y sea vulnerable a ReDos y se utilice bypassear el patron.


Saludos.
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
sissi

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Esto previene inyeccion sql if(!ereg("^[a-zA-Z0-9_\.-]+$", trim($user))) ?
« Respuesta #4 en: 16 Abril 2011, 02:08 am »

De verdad funciona entonces evitar la inyeccion sql es tan simple como esto mmm pense que habria formas mas complicadas de evadir esta proteccion bueno gracias.
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Esto previene inyeccion sql if(!ereg("^[a-zA-Z0-9_\.-]+$", trim($user))) ?
« Respuesta #5 en: 17 Abril 2011, 06:34 am »

El problema está en que sucede si quieres ingresar una comilla a la base de datos?

por ejemplo si hago esto """" '''' ``´´ el foro debería comerse las comillas?

la idea principal no es restringir al visitante o usuario final de una aplicación web, para eso existe la función mysql_real_escape_string() siempre y cuando encierres el valor en comillas, por ejemplo:

Código
  1. <?php mysql_query('
  2. select * from users where
  3. nick = "'.mysql_real_escape_string($_GET['user']).'"
  4. limit 1
  5. '); ?>

solo para strings, para valores numéricos basta usar (int)$_GET['algo']

Si necesitas mas info pasa por este enlace:
http://foro.elhacker.net/nivel_web/como_evitar_la_inyeccion_sql-t252384.0.html
http://foro.elhacker.net/seguridad/prevenir_sql_injection-t261480.0.html
http://foro.elhacker.net/nivel_web/temas_mas_destacados_fallas_y_explotaciones_a_nivel_web_actualizado_31510-t244090.0.html
En línea

sissi

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Esto previene inyeccion sql if(!ereg("^[a-zA-Z0-9_\.-]+$", trim($user))) ?
« Respuesta #6 en: 23 Junio 2011, 08:35 am »

si tienes razon si deseo ingresar una comilla pues no valdria.
dos preguntas mas, ¿que piensan de mod_security de apache? y .¿mysql_real_escape_string se puede usar con cualquier otro gestor de base de datos ?

gracias de antemano
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Esto previene inyeccion sql if(!ereg("^[a-zA-Z0-9_\.-]+$", trim($user))) ?
« Respuesta #7 en: 23 Junio 2011, 19:16 pm »

Con PDO es mucho más fácil y sirve para cualquier motor de base de datos...

:http://www.phpbuilder.com/manual/function.pdo-quote.php
En línea

Te vendería mi talento por poder dormir tranquilo.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Donde hacen esas barras EJ "Coke Drinker,Elhacker User ect"
Diseño Gráfico
LordKevin 3 2,303 Último mensaje 17 Junio 2006, 23:33 pm
por + enrique ZP
[PRINCIPIANTE] Ayuda con user en inyeccion SQL
Nivel Web
GingerCat 1 2,774 Último mensaje 4 Mayo 2013, 06:57 am
por Shell Root
No funciona un programa con "$name = trim(fgets(STDIN))"
PHP
Linton 5 3,413 Último mensaje 27 Noviembre 2013, 08:21 am
por dRak0
"Trim" en los ssd
Hardware
Zorronde 2 2,007 Último mensaje 25 Octubre 2014, 06:31 am
por Randomize
Ayuda con directorio "user"
Programación General
xavier27 1 1,833 Último mensaje 8 Julio 2015, 16:20 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines