Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/01/2005, 07:27
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

1.- Por seguridad, siempre sesion. Si usas URL es el navegador el que manda esos datos, y pasan por todos los puntos intermedios (proxy, routers, ...). Es facil "pinchar" la linea y modificar los datos de la URL (pregunta a los afiliados cd clickbank y como existen spywares para IE que sustituyen los id de afiliado del webmaster por los del creador del spyware).

Por recursos, por URL consumes "mas" transferencia (unos bytes por peticion), por sesion consumes "mas" disco duro (unos bytes por sesion activa). Si tienes 100 sesiones activas simultaneas, todas con una media de 1kb de datos, estas ocupando 100kb de disco duro.

2.- Depende del caso, pero por mas seguro seria solo pasar un valor y volver a consultar los datos. Solo planteate que supondria que un "crio" malintencionado se pondria a jugar con los valores que pasas por url (¿nunca has probado a poner en la barra de direcciones directamente otros valores?). Puede producir un fallo de la pagina despreciable (simplemente, da error esa pagina, pero como nadie va a usar esa URL modificada, no importa) o desvelar detalles internos de tu aplicacion que puedan ser usados en un ataque mas serio.

¿REcursos? Bueno, si ya tenias que hacer una consulta a BD, el "gasto" de la conexion a la BD ya lo tenias que hacer.
Cita:
¿Es aconsejable recoger todas las variables al principio de la página para usarlas donde convenga, o es mejor recogerlas cuando se necesitan?.
Supongo que te refieres al comienzo del sitio (o de la navegacion de la seccion). Bueno, yo soy de la opinion de leer los datos en el punto mas cercano a su uso, sobre todo si es de base de datos, y son datos compartidos por varios usuarios simultaneamente. Por ejemplo, imaginate que lees de la BD el valor 5, lo llevas en una sesion durante 5 paginas, muestras ese 5, pero el valor actual en ese momento de mostrarlo el -3. Ese es el problema de desincronizacion, muestras datos antiguos. Por supuesto, hay casos donde eso da lo mismo (por eso la gente usa caches en sus aplicaciones), y esa desincronizacion es despreciable.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.