elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 05:42  


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  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 2,999 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 »

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 por sissi » En línea
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


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

Citar
Código
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
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

---
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 »

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 por sissi » En línea
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



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

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

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 »

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
***
Desconectado Desconectado

Mensajes: 4.113


The Hacktivism is not a crime


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

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
<?php mysql_query('
select * from users where
nick = "'
.mysql_real_escape_string($_GET['user']).'"
limit 1
'
); ?>

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

Mi foro Ultra Off-Topics: http://whk.drawcoders.com/foro/

Gracias a todos! Good bye!
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 »

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


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


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

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

---
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines