Foros del Web » Programando para Internet » PHP »

Autentificator - Gestión de Usuarios by Cluster

Estas en el tema de Autentificator - Gestión de Usuarios by Cluster en el foro de PHP en Foros del Web. Excelente! hay que apoyar a cluster votando en hotscripts!...

  #331 (permalink)  
Antiguo 26/05/2006, 10:24
Avatar de acervantes  
Fecha de Ingreso: agosto-2003
Ubicación: Madrid
Mensajes: 311
Antigüedad: 21 años, 4 meses
Puntos: 1
Excelente!
hay que apoyar a cluster votando en hotscripts!
__________________
ACervantes

[El éxito dura hasta que alguien las caga; los errores son eternos]
  #332 (permalink)  
Antiguo 26/05/2006, 10:33
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 20 años
Puntos: 6
De acuerdo

buens la verdad exelente es la votacion ke merece y ke le di a tu script muy pero muy buemno cluster ;) salu2 y exitos
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #333 (permalink)  
Antiguo 26/05/2006, 11:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por acervantes
Excelente!
hay que apoyar a cluster votando en hotscripts!
Ya no está en Hotscripts .. lo sacaron cuando cambió la "interface" (web) de hotscripts.com (hace tiempo ya ..) .. pero dá igual .. está "regado" por muchos otros sitios.

La verdad es que no me preocupé de actualizar o re-inscribir el script en "hotscripts" ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #334 (permalink)  
Antiguo 26/05/2006, 11:18
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años, 1 mes
Puntos: 281
y yo votando por el script.. jajaja
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #335 (permalink)  
Antiguo 26/05/2006, 11:23
Avatar de acervantes  
Fecha de Ingreso: agosto-2003
Ubicación: Madrid
Mensajes: 311
Antigüedad: 21 años, 4 meses
Puntos: 1
pero en el link a "vote en hotscripts" que hay en el footer de la pagina de instrucciones que tienes de tu autentificador, voté y no me dió ningún error.

saludos,
__________________
ACervantes

[El éxito dura hasta que alguien las caga; los errores son eternos]
  #336 (permalink)  
Antiguo 26/05/2006, 11:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por acervantes
pero en el link a "vote en hotscripts" que hay en el footer de la pagina de instrucciones que tienes de tu autentificador, voté y no me dió ningún error.

saludos,
mm .. pues en hotscritps.com no veo "Autentificator" .. Si lo ven .. me avisan.

(Si, sí .. tendré que quitar el link .. )

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #337 (permalink)  
Antiguo 26/05/2006, 19:32
Avatar de acervantes  
Fecha de Ingreso: agosto-2003
Ubicación: Madrid
Mensajes: 311
Antigüedad: 21 años, 4 meses
Puntos: 1
el link está desde la parte final del link que pusiste:
http://php.cluster-web.com/autentificator/
incluso luego de votar y poner la clave sale una pantalla de hotscripts con:
Thank you for your vote for listing # 15291!

aprovecho para consultarte por qué, me está dando los siguientes errores?:
aut_gestion_usuarios.php
Notice: Undefined index: accion in c:\archivos de programa\easyphp1-8\www\pruebas\autentificator\aut_gestion_usuarios. php on line 192

Notice: Undefined index: accion in c:\archivos de programa\easyphp1-8\www\pruebas\autentificator\aut_gestion_usuarios. php on line 210

Notice: Undefined index: accion in c:\archivos de programa\easyphp1-8\www\pruebas\autentificator\aut_gestion_usuarios. php on line 272

------------------------------------------------------------------------
en aut_gestion_usuarios.php (al momento de crear usuario):

Notice: Undefined variable: PHP_SELF in c:\archivos de programa\easyphp1-8\www\pruebas\autentificator\aut_gestion_usuarios. php on line 215

------------------------------------------------------------------------
__________________
ACervantes

[El éxito dura hasta que alguien las caga; los errores son eternos]
  #338 (permalink)  
Antiguo 31/05/2006, 08:27
Avatar de nolox  
Fecha de Ingreso: mayo-2006
Mensajes: 7
Antigüedad: 18 años, 6 meses
Puntos: 0
Pregunta Problema pag1_restringida.php

Buenas a todos, el script está genial y tiene una pinta excelente. Pero al intentar usarlo me ocurre algo extraño.

Al introducir user y pass los acepta bien, aparentemente, y me redirige a la página restringida pero ésta me sale totalmente en blanco. Parece que carga correctamente, pero sólo aparece en blanco.

Me he vuelto loco intentando averiguar cual es el problema, pero nada. Cualquier código php que ponga al principio de la página restringida, hace que ésta aparezca en blanco.

¿Alguna idea?

Uso la v2.01 de autentificator, win xp, apache +PHP+MySQL y tengo activado en el php.ini todo lo que he estado viendo por los foros era necesario para que fucnionara el script
  #339 (permalink)  
Antiguo 14/06/2006, 08:09
 
Fecha de Ingreso: julio-2005
Mensajes: 47
Antigüedad: 19 años, 5 meses
Puntos: 0
Sin palabras!

Cluster, desde ahora San Cluster jajaja, eres un genio!, es exactamente loque estaba buscando, voy a leerlo y despues comento, pero a simple vista está impecable.
GRACIAAAAS!!!!
  #340 (permalink)  
Antiguo 14/06/2006, 09:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por acervantes
el link está desde la parte final del link que pusiste:
http://php.cluster-web.com/autentificator/
incluso luego de votar y poner la clave sale una pantalla de hotscripts con:
Thank you for your vote for listing # 15291!

aprovecho para consultarte por qué, me está dando los siguientes errores?:
aut_gestion_usuarios.php
Notice: Undefined index: accion in c:\archivos de programa\easyphp1-8\www\pruebas\autentificator\aut_gestion_usuarios. php on line 192

Notice: Undefined index: accion in c:\archivos de programa\easyphp1-8\www\pruebas\autentificator\aut_gestion_usuarios. php on line 210

Notice: Undefined index: accion in c:\archivos de programa\easyphp1-8\www\pruebas\autentificator\aut_gestion_usuarios. php on line 272

------------------------------------------------------------------------
en aut_gestion_usuarios.php (al momento de crear usuario):

Notice: Undefined variable: PHP_SELF in c:\archivos de programa\easyphp1-8\www\pruebas\autentificator\aut_gestion_usuarios. php on line 215

------------------------------------------------------------------------
Ese problema creo haberlo comentado en este mismo mensaje .. son ya 12 páginas de resultados y no lo encuentro .. pero hechale un vistazo ..

El problema en su base se refiere al nivel de mensajes de error que tu configuración de PHP muestra (error_reporting a un nivel elevado). Y a una "mala" programación en ese aspecto donde tendría que haber hecho validaciones tipo:

Código PHP:
if (!empty($_GET['accion'])){ // si existe dicha variable en GET ...
// entonces .. usamos y accedemos a $_GET['accion']

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #341 (permalink)  
Antiguo 14/06/2006, 10:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por nolox
Buenas a todos, el script está genial y tiene una pinta excelente. Pero al intentar usarlo me ocurre algo extraño.

Al introducir user y pass los acepta bien, aparentemente, y me redirige a la página restringida pero ésta me sale totalmente en blanco. Parece que carga correctamente, pero sólo aparece en blanco.

Me he vuelto loco intentando averiguar cual es el problema, pero nada. Cualquier código php que ponga al principio de la página restringida, hace que ésta aparezca en blanco.

¿Alguna idea?

Uso la v2.01 de autentificator, win xp, apache +PHP+MySQL y tengo activado en el php.ini todo lo que he estado viendo por los foros era necesario para que fucnionara el script
* Prueba ver el código fuente generado en esa página en blanco (a ver si obtienes algún mensaje de error ahí).

* Revisa que tengas instalado Mysql y la extensión de Mysql para PHP (ya has usado Mysql en tu servidor con otras aplicaciones o código?).

* Revisa el informe de errores de PHP en tu php.ini para que se muestren, directivas: error_reporting y display_errors

* Supongo que estaras probando los scripts de ejemplo suministrados sin ningún cambio en su código (para verificar que Autentificator funciona).

* Especifica las versiones de PHP que usas y el servidor HTTP (Apache? .. cual?).

* Revisa el valor de $_SERVER['HTTP_REFERER'] (creando un pequeño script que tenga un link a un segundo script y en este último haciendo un echo a dicha variable, debese obtener el valor de la página de donde llegas (su URL). En eso se basa Autentificator para algunas validaciones.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #342 (permalink)  
Antiguo 14/06/2006, 10:39
Avatar de sam
sam
 
Fecha de Ingreso: agosto-2001
Ubicación: Aguascalientes, México.
Mensajes: 572
Antigüedad: 23 años, 4 meses
Puntos: 2
Ta bueno el script, ya te vote en hotscripts xD

Saludos
__________________
El que tiene voluntad de aprender, encontrará siempre un maestro...
Proverbio Aleman
  #343 (permalink)  
Antiguo 16/06/2006, 04:12
 
Fecha de Ingreso: noviembre-2003
Mensajes: 25
Antigüedad: 21 años
Puntos: 0
Hola, llevo usando tu script desde hace tiempo y me ha funcionado correctamente, lo modifiqué para que me fuera perfecto para lo que necesitaba.
El problema me viene ahora que he cambiado de server.

Windows 2003 server.

Me aparece el siguiente error al intentar "logarme"

Bad Gateway
Web server received an invalid response while acting as a gateway or proxy server.

Te suena por donde podría ir el fallo?
  #344 (permalink)  
Antiguo 16/06/2006, 05:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por jmtnez
Hola, llevo usando tu script desde hace tiempo y me ha funcionado correctamente, lo modifiqué para que me fuera perfecto para lo que necesitaba.
El problema me viene ahora que he cambiado de server.

Windows 2003 server.

Me aparece el siguiente error al intentar "logarme"

Bad Gateway
Web server received an invalid response while acting as a gateway or proxy server.

Te suena por donde podría ir el fallo?
En realidad más que mencionar que usas Windows 2003 Server .. lo que importa es que servidor HTTP usas .. supongo que IIS (y que versión tal vez) vs a Apache (que también puede correr en Windows 2003 Server).

Sobre el error .. realmente es bastante general dicho error .. no sé a que puede ser debido.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #345 (permalink)  
Antiguo 19/06/2006, 04:11
 
Fecha de Ingreso: noviembre-2003
Mensajes: 25
Antigüedad: 21 años
Puntos: 0
Es cierto perdona que creí que lo habia puesto:

Microsoft IIS 6.0

Apache Tomcat 5.5.4

MySQL 4.1.12
  #346 (permalink)  
Antiguo 19/06/2006, 06:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por jmtnez
Es cierto perdona que creí que lo habia puesto:

Microsoft IIS 6.0

Apache Tomcat 5.5.4

MySQL 4.1.12
No he tenído oportunidad de probar Autentificator por mi parte en IIS ni en Apache Tomcat .. De todas formas .. ambos servidores son HTTP .. pero es necesario siempre que consultes algún problema similar que especifiques cual usas en concreto .. (o lo has probado en los dos servidores?).

También la versión de PHP podría influir. Esta petición de datos que te hago no es que con ello pueda ayudarte en este momento .. pero por lo menos queda el "reporte" del error por si alguien se ecuentra en la misma situación o alguien (usuarios de Autentificator) por su parte encontraron la solución como para que la publiquen aquí.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #347 (permalink)  
Antiguo 23/06/2006, 13:59
 
Fecha de Ingreso: diciembre-2005
Mensajes: 87
Antigüedad: 19 años
Puntos: 3
Exclamación Ayuda

Muyyy buenas...

Haber estoy intentando autentificarme, uso IIS 6.0 y me da el siguiente error al pasar de Login.php a Index.php

Error CGI
La aplicación CGI especificada puede comportarse de forma anormal si no recibe un conjunto completo de encabezados HTTP.


Si alguien me hecha una manito....

Saludos.
  #348 (permalink)  
Antiguo 04/07/2006, 11:50
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 20 años, 3 meses
Puntos: 0
Fallo con Opera 8.5

hola cluster.

bueno y a todos los que vean este post, bueno es que he implementado en mi sistema parte del codigo del autentificador de cluster, y la verdad me funciona a las mil maravillas pues con firefox e internet explorer, pero con opera 8.5 sucede un problema y es que cuando estoy en la pagina de zona restringida y le doy al link de cerrar sesion, pues me lleva a la pagina:aut_logout.php, donde dice: Chaoo!, que tenga un buen dia., pero si yo le doy hacia atras pues se mete de nuevo en la zona restringuida, que puede estar pasando, yo vi el error y pense que yo estaba haciendo algo mal, pues decidi probar el autentificador directamente con opera y pues evidencie el fallo, que puede estar pasando???
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #349 (permalink)  
Antiguo 04/07/2006, 12:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
No es error del autentificador, esque Opera por default hace Cache de todas las paginas, de todas, para que cuando le des back, se despliegue inmediato, es por eso que ves de nuevo la pagina, si le das F5, vas a ver que te va a pedir que te autentifiques de nuevo.
  #350 (permalink)  
Antiguo 04/07/2006, 13:44
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 20 años, 3 meses
Puntos: 0
Pregunta fallo con Opera 8.5 x cache

si, es cierto, pero creo que es un bugs de seguridad, por que mira este caso:

un cliente llega, abre su opera en un cafe internet, bueno cuando sale del cafe el le da al link de cerrar sesion, pero.........., el confia que ya no pueden ver sus datos, de sus transacciones u operaciones, viene un necio le da atras y puede manipular sus datos, debe haber alguna forma de evitar esto, que se puede hacer????

pues creo que el autentificador debe hacersele una mejora en cuanto a esto, pues si es opera va a fallar en este aspecto, por ahi estuve leyendo algo sobre la directiva: $_SERVER['HTTP_REFERER'], no tendra algo que ver??.

bueno la verdad no se que puede estar pasando.

segun el autor:cluster, pues el dice en algunos de sus comentarios: nocache

bueno, hay algun remedio para solucionar este fallo???
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #351 (permalink)  
Antiguo 04/07/2006, 15:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por Stickmaster2004
si, es cierto, pero creo que es un bugs de seguridad, por que mira este caso:

un cliente llega, abre su opera en un cafe internet, bueno cuando sale del cafe el le da al link de cerrar sesion, pero.........., el confia que ya no pueden ver sus datos, de sus transacciones u operaciones, viene un necio le da atras y puede manipular sus datos, debe haber alguna forma de evitar esto, que se puede hacer????

pues creo que el autentificador debe hacersele una mejora en cuanto a esto, pues si es opera va a fallar en este aspecto, por ahi estuve leyendo algo sobre la directiva: $_SERVER['HTTP_REFERER'], no tendra algo que ver??.

bueno la verdad no se que puede estar pasando.

segun el autor:cluster, pues el dice en algunos de sus comentarios: nocache

bueno, hay algun remedio para solucionar este fallo???
Si, el problema es de "caché" .. Pero el caché se controla con cabeceras HTTP que todos los navegadores deberían respetar y actuar de la misma forma.

Es decir .. si a la página se le diche que "no hagas caché" .. así debería tratarla el navegador.

En "Autentificator" y en concreto en el uso de sesiones en general .. la función, session_cache_limiter() es la que ajusta el comportamiento de "caché" de las páginas autentificadas. Por defecto se usa lo que PHP recomienda "private" ..

Puedes añadir más cabeceras HTTP al respecto .. como por ejemplo un comentario de los usuarios de esa función en php.net describe:

Código PHP:
<?
header
("ETag: PUB" time());
header("Last-Modified: " gmdate("D, d M Y H:i:s"time()-10) . " GMT");
header("Expires: " gmdate("D, d M Y H:i:s"time() + 5) . " GMT");
header("Pragma: no-cache");
header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate");
session_cache_limiter("nocache");
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #352 (permalink)  
Antiguo 05/07/2006, 09:20
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 20 años, 3 meses
Puntos: 0
Sonrisa implementar en aut_verifica.php

bueno estuvo bien lo de la explicacion de este tema y sobre el cacheo de las paginas voy a tratar de implementar el codigo, pero bueno tu que te conoces bien tu sistema me podrias decir en que parte podria colocar el codigo que me digiste en aut_verifica.php, para que ninguna pagina quede en cache en los lugares en donde hay zonas de seguridad, bueno te agradeceria infinitamente de su ayuda maestro, ehhh funciona a la perfeccion en internet explorer y firefox pero quisiera que tuviera la consistencia en opera, bueno asi vamos mejorando el rendimiento y la seguridad.
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #353 (permalink)  
Antiguo 05/07/2006, 11:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
El código que te expuse de ejemplo para que lo pruebes debería quedar como está en lugar de la actual función: session_cache_limiter() (incluida esta .. )

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #354 (permalink)  
Antiguo 05/07/2006, 14:40
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 20 años, 3 meses
Puntos: 0
he probado y nada que sale!!!!

pues creo que opera es un cuento, pues guarda todo en la cache, he tratado de colocar las lineas que me dijiste en el archivo aut_verifica.inc.php asi de esta manera:

// le damos un mobre a la sesion.
session_name($usuarios_sesion);
// incia sessiones
session_start();

// Paranoia: decimos al navegador que no "cachee" esta página.
header("ETag: PUB" . time());
header("Last-Modified: " . gmdate("D, d M Y H:i:s", time()-10) . " GMT");
header("Expires: " . gmdate("D, d M Y H:i:s", time() + 5) . " GMT");
header("Pragma: no-cache");
header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate");
session_cache_limiter('nocache,private');

pues es una parte del archivo en donde le implemente lo que me dijiste pero todavia sigue guardando en la cache.

que podra ser???
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #355 (permalink)  
Antiguo 05/07/2006, 16:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Por mi parte desconozco por completo "Opera" como navegador .. Lo único que te puedo comentar al respecto es que .. existe el protocolo HTTP que tiene sus normas y cabecera como es el caso para indicar por "convenio" a navegadores, proxys y demás clientes "de esta página no hagas caché" .. Ahora, .. que todos los navegadores existentes se comporte de la misma forma, omitan esas cabeceras o hagan algo distinto a lo que los standares define es otro cuento ..

Tendrás que investigar por tu parte en general como "Opera" gestiona el caché .. cuando tegas alguna pista de que "cabecera" HTTP o similar usar para evitarlo si quieres pide asesoría de como "enviar" tal o cual cabecera HTTP desde PHP (como es el caso y ejemplos últimos que expuse).

Por mi parte no sé que más recomendarte .. Lo siento .. pero si tienes presente que una "cabecera HTTP" es un dato que tu navegador ha de "respetar" y por A o B motivo "lo omite" .. ¿ahí que podemos hacer? ... Si encuentras la respuesta, compartela.

Sólo se me ocurre probar una cosa:

sube el código de session_cache_limiter() antes de session_start() los "header()" tambien (en el mismo orden pero antes de session_start().

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 05/07/2006 a las 16:05
  #356 (permalink)  
Antiguo 05/07/2006, 23:20
 
Fecha de Ingreso: enero-2006
Mensajes: 3
Antigüedad: 18 años, 10 meses
Puntos: 0
Cita:
Iniciado por nomakon
Muyyy buenas...

Haber estoy intentando autentificarme, uso IIS 6.0 y me da el siguiente error al pasar de Login.php a Index.php

Error CGI
La aplicación CGI especificada puede comportarse de forma anormal si no recibe un conjunto completo de encabezados HTTP.


Si alguien me hecha una manito....

Saludos.
Yo tengo exactamente el mismo problema, bueno, si lo corro como localhost con Apache me funciona perfecto, pero al subirlo al servidor web de la empresa que es IIS me sale aquel error de CGI, alguien ha podido hacerlo funcionar en IIS ? maldita sea la hora en que no usan Apache.
  #357 (permalink)  
Antiguo 12/07/2006, 03:34
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 19 años, 7 meses
Puntos: 2
$_server['http_referer']

Hola Cluster, le he estado echando un vistazo al "Autentificator", y me parece que esta genial! Felicidades.

Solo queria comentarte una cosa, analizando el codigo me he encontrado con esta variable global: $_SERVER['HTTP_REFERER'], y como no sabia de que se trataba me he estado informando un poco mas.

Al parecer el uso de esta variable puede conllevar problemas de seguridad, tal y como explican en esta pagina, ni siquiera en php.net recomiendan su uso:
Cita:
En resumen, no se puede confiar realmente en este valor.
Dime cluster, ¿conocias estos datos? ¿crees que su uso puede traer problemas o no? ¿de que otra manera crees que se podria hacer lo que hace la parte del codigo en que usas esa variable?

1Saludo y gracias!
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.

Última edición por oskarL; 12/07/2006 a las 03:35 Razón: Poner un titulo
  #358 (permalink)  
Antiguo 12/07/2006, 06:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por oskarL
Hola Cluster, le he estado echando un vistazo al "Autentificator", y me parece que esta genial! Felicidades.

Solo queria comentarte una cosa, analizando el codigo me he encontrado con esta variable global: $_SERVER['HTTP_REFERER'], y como no sabia de que se trataba me he estado informando un poco mas.

Al parecer el uso de esta variable puede conllevar problemas de seguridad, tal y como explican en esta pagina, ni siquiera en php.net recomiendan su uso:

Dime cluster, ¿conocias estos datos? ¿crees que su uso puede traer problemas o no? ¿de que otra manera crees que se podria hacer lo que hace la parte del codigo en que usas esa variable?

1Saludo y gracias!
Si, conocía de esos problemas sobre HTTP_REFERER, (no lo concí directamente en el momento del desarrollo del script en sí .. ya hace unos años pero si que me dí cuenta posteriormente).

El detalle está que no lo uso con fines de validación .. me explico, las sesiones y su validación siempre prevalecen sobre la validación de la página referida que hago.

La obtención de la página referida vía HTTP_REFERER sólo la uso con fines de devolver al formulario de logín que el usuairo pueda haber creado ante un problema de validación del login (Usuario/contraseña), y principalmente por motivos de "usabilidad?" .. es decir, para no "amarrar" a un sólo formulario de lógin por sitio sino que puedieran eventualmente usar diferentes apuntanto al mismo script de validación.

De hecho .. en este mismo mensaje (ya sé que lleva ya muchas páginas y mensajes) he visto problemas de otro ambito referentes al uso de dicha variables de servidor HTTP_REFERER, cuando la gente lo usa en combinación de ventanas abiertas por javascript .. dicho dato no es entregado por el navegador al servidor y por ende falla esa porción del código. En otros casos, configuraciones de ciertos proxys y/o antivirus (con esas funcionalidades) no entregan o adulteran el valor de "HTTP_REFERER" ...

La solución para estos casos ya la he dado várias veces .. aunque asumo que debería de una vez por todas modificar el script original y quitar esa porción del código dejando fija a un valor del URL donde tengas el formulario de "login" en la variable (si mal no recuerdo) $redir.

Sobre más problemas en sí de seguridad de "HTTP_REFERER" no he tenido oportunidad de probarlo (en general). Si tienes oportunidad de probarlo (con más ejemplos y si corresponde aplicado a PHP estaría bueno hacer ese analisis .. no por mi aplicación en sí .. sino por todas las que lo usan: sistemas de estadisticas de visitas .. etc ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #359 (permalink)  
Antiguo 18/10/2006, 16:51
Avatar de roninrojo  
Fecha de Ingreso: abril-2003
Ubicación: España
Mensajes: 103
Antigüedad: 21 años, 8 meses
Puntos: 0
no se propaga la sesion

Hola cluster, siento atormentarte con una duda que te deben haber fusilado mil veces ya, pero empiezo a estar desesperadillo y no encuentro la solucion buscando en hilo del tema ni en el foro

LLevo usando tu autentificator hace muchisímo y es la primera vez que me pasa.

En localhost me funciona perfecto y en mucho otro sitios on-line también, el caso es que al subirlo on-line de nuevo esta vez me ha dado:
Error cod.: 2 - Acceso incorrecto!

¿Esto es que no se propaga la sesion verdad?

version php 5.1.6 y Apache/2.0.59
la carpeta temp existe
session.use_trans_sid = 0 <- me funciona en otros sitios con la directiva a 0 así que no se... te pongo mi archivo:

Código PHP:
<?
//  Autentificator
//  Gestin de Usuarios PHP+Mysql+sesiones
//  by Pedro Noves V. (Cluster)
//  [email protected]
//  v1.0  - 17/04/2002 Versin inicial.
//  v1.01 - 24/04/2002 Solucionado error sintactico en aut_verifica.inc.php.
//  v1.05 - 17/05/2002 Optimizacin cdigo aut_verifia.inc.php
//  v1.06 - 03/06/2002 Correccin de errores de la versin 1.05 y error con navegadores Netscape
//  v2.00 - 18/08/2002 Optimizacin cdigo + Seguridad.
//                     Ahora funciona con la directiva registre_globals= OFF. (PHP > 4.1.x)
//                     Optimizacin Tablas SQL. (rangos de tipos).
//  v2.01 - 16/10/2002 Solucionado "despistes" de la versin 2.00 de Autentificator
//                     en aut_verifica.inc.php y aut_gestion_usuarios.php que ocasinavan errores al trabajar
//                     con la directiva registre_globals= OFF.
//                     Solucionado error definicin nombre de la sessin.
//
// Descripcin:
// Gestin de Pginas restringidas a Usuarios, con nivel de acceso
// y gestin de errores en el Login
// + administracin de usuarios (altas/bajas/modificaciones)
//
// Licencia GPL con estas extensiones:
// - Uselo con el fin que quiera (personal o lucrativo).
// - Si encuentra el cdigo de utilidad y lo usas, mandeme un mail si lo desea.
// - Si mejora el cdigo o encuentra errores, hagamelo saber el mail indicado.
//
// Instalacin y uso del Gestor de usuarios en:
// documentacion.htm
//  ----------------------------------------------------------------------------


// Motor autentificacin usuarios.

// Cargar datos conexion y otras variables.
include('config_BD.php');
// chequear pgina que lo llama para devolver errores a dicha pgina.

$url explode("?",$_SERVER['HTTP_REFERER']);
$pag_referida=$url[0];
$redir=$pag_referida;
// chequear si se llama directo al script.
if ($_SERVER['HTTP_REFERER'] == ""){
die (
"Error cod.:1 - Acceso incorrecto!");
exit;
}


// Chequeamos si se est autentificandose un usuario por medio del formulario
/*echo $_POST['user'];
echo $_POST['password'];
*/
if (isset($_POST['user']) && isset($_POST['pass'])) {

// Conexin base de datos.
// si no se puede conectar a la BD salimos del scrip con error 0 y
// redireccionamos a la pagina de error.

// realizamos la consulta a la BD para chequear datos del Usuario.
$sql "SELECT * FROM $tb_usuarios WHERE usuario='".$_POST['user']."'";
$usuario_consulta mysql_query($sql,$conn) or die(header ("Location:  $redir?error_login=1"));

 
// miramos el total de resultado de la consulta (si es distinto de 0 es que existe el usuario)
 
$num_reg mysql_num_rows($usuario_consulta);

 if (
$num_reg != 0) {
    
// eliminamos barras invertidas y dobles en sencillas
    
$login stripslashes($_POST['user']);
    
// encriptamos el password en formato md5 irreversible.
    
$password md5($_POST['pass']);

    
// almacenamos datos del Usuario en un array para empezar a chequear.
     
$usuario_datos mysql_fetch_object($usuario_consulta);
  
    
// liberamos la memoria usada por la consulta, ya que tenemos estos datos en el Array.
    
mysql_free_result($usuario_consulta);
    
// cerramos la Base de dtos.
    
mysql_close($conn);
    
    
// chequeamos el nombre del usuario otra vez contrastandolo con la BD
    // esta vez sin barras invertidas, etc ...
    // si no es correcto, salimos del script con error 4 y redireccionamos a la
    // pgina de error.
    
if ($login != $usuario_datos->usuario) {
           
header("Location: $redir?error_login=4");
        exit;}

    
// si el password no es correcto ..
    // salimos del script con error 3 y redireccinamos hacia la pgina de error
    
if ($password != $usuario_datos->pass) {
        
header("Location: $redir?error_login=3");
        exit;}

    
// Paranoia: destruimos las variables login y password usadas
    
unset($login);
    unset (
$password);

    
// En este punto, el usuario ya esta validado.
    // Grabamos los datos del usuario en una sesion.

     // le damos un mobre a la sesion.
    
session_name($usuarios_sesion);
     
// incia sessiones
    
session_start();

    
// Paranoia: decimos al navegador que no "cachee" esta pgina.
    
session_cache_limiter('nocache,private');
    
    
// Asignamos variables de sesin con datos del Usuario para el uso en el
    // resto de pginas autentificadas.
    // definimos usuarios_id como IDentificador del usuario en nuestra BD de usuarios
    
$_SESSION['usuario_id']=$usuario_datos->ID;
    
    
// definimos usuario_nivel con el Nivel de acceso del usuario de nuestra BD de usuarios
    
$_SESSION['usuario_nivel']=$usuario_datos->nivel_acceso;
    
    
//definimos usuario_nivel con el Nivel de acceso del usuario de nuestra BD de usuarios
    
$_SESSION['usuario_login']=$usuario_datos->usuario;

    
//definimos usuario_password con el password del usuario de la sesin actual (formato md5 encriptado)
    
$_SESSION['usuario_password']=$usuario_datos->pass;

    
// Hacemos una llamada a si mismo (scritp) para que queden disponibles
    // las variables de session en el array asociado $HTTP_...
    
$pag=$_SERVER['PHP_SELF'];
    
header("Location: $pag?");
    exit;
    
   } else {
      
// si no esta el nombre de usuario en la BD o el password ..
      // se devuelve a pagina q lo llamo con error
      
header("Location: $redir?error_login=2");
      exit;}
} else {

// -------- Chequear sesin existe -------

// usamos la sesion de nombre definido.
session_name($usuarios_sesion);
// Iniciamos el uso de sesiones
session_start();

echo 
$usuarios_sesion//aparece vacio en pantalla ¿donde esta el fallo?

// Chequeamos si estan creadas las variables de sesin de identificacin del usuario,
// El caso mas comun es el de una vez "matado" la sesion se intenta volver hacia atras
// con el navegador.
if (!isset($_SESSION['usuario_login']) && !isset($_SESSION['usuario_password'])){
// Borramos la sesion creada por el inicio de session anterior
session_destroy();
die (
"Error cod.: 2 - Acceso incorrecto!");
exit;
}
}
?>
Hay unos cambios mínimos que no creo que tengan que ver como fetch_object, tambíen he comprobado que la consulta funcione, en fin...

Gracias por un código tan bueno y por tu paciencia,
Saludos.
__________________
www.albertocarazo.com
  #360 (permalink)  
Antiguo 18/10/2006, 17:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por roninrojo Ver Mensaje
Hola cluster, siento atormentarte con una duda que te deben haber fusilado mil veces ya, pero empiezo a estar desesperadillo y no encuentro la solucion buscando en hilo del tema ni en el foro

LLevo usando tu autentificator hace muchisímo y es la primera vez que me pasa.

En localhost me funciona perfecto y en mucho otro sitios on-line también, el caso es que al subirlo on-line de nuevo esta vez me ha dado:
Error cod.: 2 - Acceso incorrecto!

¿Esto es que no se propaga la sesion verdad?

version php 5.1.6 y Apache/2.0.59
la carpeta temp existe
session.use_trans_sid = 0 <- me funciona en otros sitios con la directiva a 0 así que no se... te pongo mi archivo:

Código PHP:
<?
//  Autentificator
//  Gestin de Usuarios PHP+Mysql+sesiones
//  by Pedro Noves V. (Cluster)
//  [email protected]
//  v1.0  - 17/04/2002 Versin inicial.
//  v1.01 - 24/04/2002 Solucionado error sintactico en aut_verifica.inc.php.
//  v1.05 - 17/05/2002 Optimizacin cdigo aut_verifia.inc.php
//  v1.06 - 03/06/2002 Correccin de errores de la versin 1.05 y error con navegadores Netscape
//  v2.00 - 18/08/2002 Optimizacin cdigo + Seguridad.
//                     Ahora funciona con la directiva registre_globals= OFF. (PHP > 4.1.x)
//                     Optimizacin Tablas SQL. (rangos de tipos).
//  v2.01 - 16/10/2002 Solucionado "despistes" de la versin 2.00 de Autentificator
//                     en aut_verifica.inc.php y aut_gestion_usuarios.php que ocasinavan errores al trabajar
//                     con la directiva registre_globals= OFF.
//                     Solucionado error definicin nombre de la sessin.
//
// Descripcin:
// Gestin de Pginas restringidas a Usuarios, con nivel de acceso
// y gestin de errores en el Login
// + administracin de usuarios (altas/bajas/modificaciones)
//
// Licencia GPL con estas extensiones:
// - Uselo con el fin que quiera (personal o lucrativo).
// - Si encuentra el cdigo de utilidad y lo usas, mandeme un mail si lo desea.
// - Si mejora el cdigo o encuentra errores, hagamelo saber el mail indicado.
//
// Instalacin y uso del Gestor de usuarios en:
// documentacion.htm
//  ----------------------------------------------------------------------------


// Motor autentificacin usuarios.

// Cargar datos conexion y otras variables.
include('config_BD.php');
// chequear pgina que lo llama para devolver errores a dicha pgina.

$url explode("?",$_SERVER['HTTP_REFERER']);
$pag_referida=$url[0];
$redir=$pag_referida;
// chequear si se llama directo al script.
if ($_SERVER['HTTP_REFERER'] == ""){
die (
"Error cod.:1 - Acceso incorrecto!");
exit;
}


// Chequeamos si se est autentificandose un usuario por medio del formulario
/*echo $_POST['user'];
echo $_POST['password'];
*/
if (isset($_POST['user']) && isset($_POST['pass'])) {

// Conexin base de datos.
// si no se puede conectar a la BD salimos del scrip con error 0 y
// redireccionamos a la pagina de error.

// realizamos la consulta a la BD para chequear datos del Usuario.
$sql "SELECT * FROM $tb_usuarios WHERE usuario='".$_POST['user']."'";
$usuario_consulta mysql_query($sql,$conn) or die(header ("Location:  $redir?error_login=1"));

 
// miramos el total de resultado de la consulta (si es distinto de 0 es que existe el usuario)
 
$num_reg mysql_num_rows($usuario_consulta);

 if (
$num_reg != 0) {
    
// eliminamos barras invertidas y dobles en sencillas
    
$login stripslashes($_POST['user']);
    
// encriptamos el password en formato md5 irreversible.
    
$password md5($_POST['pass']);

    
// almacenamos datos del Usuario en un array para empezar a chequear.
     
$usuario_datos mysql_fetch_object($usuario_consulta);
  
    
// liberamos la memoria usada por la consulta, ya que tenemos estos datos en el Array.
    
mysql_free_result($usuario_consulta);
    
// cerramos la Base de dtos.
    
mysql_close($conn);
    
    
// chequeamos el nombre del usuario otra vez contrastandolo con la BD
    // esta vez sin barras invertidas, etc ...
    // si no es correcto, salimos del script con error 4 y redireccionamos a la
    // pgina de error.
    
if ($login != $usuario_datos->usuario) {
           
header("Location: $redir?error_login=4");
        exit;}

    
// si el password no es correcto ..
    // salimos del script con error 3 y redireccinamos hacia la pgina de error
    
if ($password != $usuario_datos->pass) {
        
header("Location: $redir?error_login=3");
        exit;}

    
// Paranoia: destruimos las variables login y password usadas
    
unset($login);
    unset (
$password);

    
// En este punto, el usuario ya esta validado.
    // Grabamos los datos del usuario en una sesion.

     // le damos un mobre a la sesion.
    
session_name($usuarios_sesion);
     
// incia sessiones
    
session_start();

    
// Paranoia: decimos al navegador que no "cachee" esta pgina.
    
session_cache_limiter('nocache,private');
    
    
// Asignamos variables de sesin con datos del Usuario para el uso en el
    // resto de pginas autentificadas.
    // definimos usuarios_id como IDentificador del usuario en nuestra BD de usuarios
    
$_SESSION['usuario_id']=$usuario_datos->ID;
    
    
// definimos usuario_nivel con el Nivel de acceso del usuario de nuestra BD de usuarios
    
$_SESSION['usuario_nivel']=$usuario_datos->nivel_acceso;
    
    
//definimos usuario_nivel con el Nivel de acceso del usuario de nuestra BD de usuarios
    
$_SESSION['usuario_login']=$usuario_datos->usuario;

    
//definimos usuario_password con el password del usuario de la sesin actual (formato md5 encriptado)
    
$_SESSION['usuario_password']=$usuario_datos->pass;

    
// Hacemos una llamada a si mismo (scritp) para que queden disponibles
    // las variables de session en el array asociado $HTTP_...
    
$pag=$_SERVER['PHP_SELF'];
    
header("Location: $pag?");
    exit;
    
   } else {
      
// si no esta el nombre de usuario en la BD o el password ..
      // se devuelve a pagina q lo llamo con error
      
header("Location: $redir?error_login=2");
      exit;}
} else {

// -------- Chequear sesin existe -------

// usamos la sesion de nombre definido.
session_name($usuarios_sesion);
// Iniciamos el uso de sesiones
session_start();

echo 
$usuarios_sesion//aparece vacio en pantalla ¿donde esta el fallo?

// Chequeamos si estan creadas las variables de sesin de identificacin del usuario,
// El caso mas comun es el de una vez "matado" la sesion se intenta volver hacia atras
// con el navegador.
if (!isset($_SESSION['usuario_login']) && !isset($_SESSION['usuario_password'])){
// Borramos la sesion creada por el inicio de session anterior
session_destroy();
die (
"Error cod.: 2 - Acceso incorrecto!");
exit;
}
}
?>
Hay unos cambios mínimos que no creo que tengan que ver como fetch_object, tambíen he comprobado que la consulta funcione, en fin...

Gracias por un código tan bueno y por tu paciencia,
Saludos.
Si, .. así como mencionas el error "codigo 2" se refiere a la no posibilidad de encontrar la sesión original.

Revisa que propagues el SID correctamente. Dado las redirecciones que hace el script y por comodidad de Uds. los usuarios, se requiere que el SID se propague en cookies, por ende tu configuración de PHP debe ser tipo:

session.use_cookies = 1
session.use_only_cookie = 1 (recomendable)
session.use_trans_sid = 0

A su vez revisa tu navegador y nivel de seguridad del mismo, recuerda que PHP está intentando crear una Cookie para propagar el SID. Si esta no se consigue crear (por qué la bloqueas .. ) no se continuará con el SID válido.

Asumo que el resto de configuración de sesiones es correcta .. session.save_path apunte a un directorio que exista, etc. (El resto es opcional).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 10 personas




La zona horaria es GMT -6. Ahora son las 13:10.