Título: Seguimiento id de login entre páginas Publicado por: Shon en 5 Enero 2011, 21:05 pm Hola mi problema es este:
Logeo en un portal Mediante enlaces voy navegando por el contenido de la web. Llega un punto en el que tengo que introducir información en una base de datos mysql relacionada con un usuario. ¿Cómo averiguo desde una página x, el nick del login que se hizo al principio en la página para logear? Gracias!! Título: Re: Seguimiento id de login entre páginas Publicado por: madpitbull_99 en 5 Enero 2011, 21:17 pm Puedes guardar el nick del login en una variable de sesión: $nick = $_SESSION['nick_log_principal'] y luego lo recuperas accediendo a la matriz $_SESSION.
Enlace: _Sesiones en PHP (http://www.desarrolloweb.com/articulos/235.php) Título: Re: Seguimiento id de login entre páginas Publicado por: Graphixx en 6 Enero 2011, 04:46 am Cuando desees usar autenticacion por grupos, o niveles dentro dela web te recomiendo este script muy muy bueno.
http://www.beanbug.net/vScripts.php El que dice: vAuthenticate 3.0.1 Título: Re: Seguimiento id de login entre páginas Publicado por: ~ Yoya ~ en 6 Enero 2011, 05:42 am Cuando desees usar autenticacion por grupos, o niveles dentro dela web te recomiendo este script muy muy bueno. http://www.beanbug.net/vScripts.php El que dice: vAuthenticate 3.0.1 Ese vAuthenticate 3.0.1 parece que es para PHP4, tiene vulnerabilidades por todos lados hasta un bypass de SQLI en el login Código
Poner el nombre de usuario y como password: Código: ') or ('1'='1 o Código: user:' OR '1' = '1 Si tienes la directiva short_open_tag Off como es en mi caso, las etiquetas <? ?> no son tomadas como etiquetas valida de PHP y muestra todo el codigo XD y por lo tanto no funciona correctamente ya que usa en varios archivos la etiqueta <? ?> y tienes que editar muchos archivos... Es muy viejo, creo que es del año 2003 o 2004 y no se actualiza. Todavía veo pagina que lo utiliza xD. Título: Re: Seguimiento id de login entre páginas Publicado por: Graphixx en 6 Enero 2011, 05:59 am mmmmm gracias por tu analisis yoya, la verdad yo lo use hace años para una intranet que no hiba tener acceso a internet (gracias a Dios). cuando apenas estaba empezando. y no lo volvi a revisar incluso lo habia pasado a español, pero ya ni encuentro la traduccion.
EN su tiempo lo vi genial, algun sistema moderno asi que recomiendes ? Y otra cosa, cuando uno usa una validacion javascript para comprobar si el usuario que estan ingresando de verdad existe en la BD, antes de confirmar usuario-contraseña, se podria decir que se protege el login de SQLI ? algo asi: El formulario de login: Código
el javascript que valida (main.js - utiliza jquery.js): Código: $(document).ready(function(){ y si se valida por javascript que el usuario ingresado existe se procede a validar su ingreso asi (procesar_ingreso.php): Código
Título: Re: Seguimiento id de login entre páginas Publicado por: Graphixx en 6 Enero 2011, 06:21 am Entonces Yoya, o algun otro usuario... creen que con el nuevo sistema de login, aun sigue siendo vulnerable ?
Título: Re: Seguimiento id de login entre páginas Publicado por: ~ Yoya ~ en 6 Enero 2011, 06:32 am Yo usualmente lo creo si no es que uso algún CMS o ocupo algún framework como Cakephp que me ayuda, así no tengo que inventar la rueda xD. De momento no he usado algo similar al vAuthenticate...
En lo de proteger ataques SQLI usando javascript no es efectivo aparte de que se ve el código y puedes intentar bypassearlo, simplemente desactivando javascript o editando el codigo javascript mediante Firebug puedes evitar el código para protegerse de ataques SQL. Título: Re: Seguimiento id de login entre páginas Publicado por: Shon en 6 Enero 2011, 17:14 pm Muchas gracias, me ha funcionado de maravilla ;-)
Título: Re: Seguimiento id de login entre páginas Publicado por: Spider-Net en 7 Enero 2011, 03:26 am Para evitar el SQL Injection en ese código lo que tendrías que hacer es filtrar las variables $username y $password antes de ejecutar cualquier sentencia SQL con ellas. Hay muchas funciones para parsear variables como mysql_real_escape_string(), strip_tags(), stripslashes(), etc.
Un ejemplo sencillo: Código
Es importante NUNCA ejecutar una sentencia SQL sin antes haber filtrado TODAS las variables que vayan a formar parte de la sentencia. Lo mismo a la hora de mostrar las variables directamente con un "echo". Es bueno filtrar las variables antes de insertarlas en la base de datos y antes de mostrarlas por pantalla para evitar también ataques de XSS. Puedes filtrar el XSS con strip_tags() por ejemplo. Título: Re: Seguimiento id de login entre páginas Publicado por: Shon en 7 Enero 2011, 10:26 am La leche, pues el código que tengo hecho tiene unos agujeros que te cabe una bombona de butano jaja
Vale, mientras leo sobre el tema, te pregunto las dudas que me han surgido al leer tu post: ¿Con ese código que me has enseñado, puedo estar medianamente a salvo, o tengo que utilizar más funciones como las que mencionas? ¿Hay que filtrar también las variables que yo creo, o sólo las que vienen de formularios mediante get o post? ¿Lo que dices de echo también es aplicable a print ? ¿Es conveniente filtrar una variable que guardaré en una variable de sesión y que sé, que mas adelante la tendré que utilizar para hacer una consulta? ¿O mejor guardarla sin filtrar y filtrarla cuando vaya a utilizarla? Gracias ;) Título: Re: Seguimiento id de login entre páginas Publicado por: ~ Yoya ~ en 7 Enero 2011, 14:30 pm Solo filtrar lo que pueda perjudicarte...
Si recibes datos por el cliente y esos datos lo usas para hacer una consulta SQL, debes filtrar los datos. Si recibes datos por el cliente y a esos datos le harás un echo, tienes que filtrarlo. Si filtra todo lo que pasa por GET y POST, tu servidor durara mas para procesar los datos. También tienes que tener en cuenta que porque hagas parcheado alguna vulnerabilidad no significa que el parche sea lo mas seguro... Cuidado con la Regexp mal hecha que te pueden causar ReDos y puede dar espacio a una vulnerabilidad. Hay muchas al nivel web xD. Vulnerability (http://www.owasp.org/index.php/Category:Vulnerability) Título: Re: Seguimiento id de login entre páginas Publicado por: Spider-Net en 7 Enero 2011, 15:42 pm Creo que ya el compañeo ~ Yoya ~ te ha aclarado prácticamente todas tus dudas, sólo añadir que debes filtrar todas las variables que vayas a imprimir directamente por pantalla, da igual que uses echo, print o cualquier otra función de salida por pantalla, todas serían vulnerables a XSS si no filtras las variables antes de mostrarlas.
|