Foros del Web » Programando para Internet » PHP »

Una decisión importante...

Estas en el tema de Una decisión importante... en el foro de PHP en Foros del Web. Hola a todos! He vuelto por estos pagos después de un largo tiempo. Esta año es muy importante para mi, ya que allá por junio ...
  #1 (permalink)  
Antiguo 12/03/2006, 00:15
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 10 meses
Puntos: 2
Una decisión importante...

Hola a todos! He vuelto por estos pagos después de un largo tiempo. Esta año es muy importante para mi, ya que allá por junio (después de casi 1 año y medio) estaré lanzando mi proyecto.

Quisiera consultar con ustedes lo siguiente:

En mi sitio habrán "espacios personales" para los usuarios. Algo así como los espacios de MySpace o MSN Spaces, pero con otros fines.

Los espacios son como un "mini sitio" estandarizado para cada usuario, con 7 secciones. (supongamos: /mi_sitio/espacios/usuario/*.php)

Cada una de las secciones es un archivo PHP que realiza un llamado a la base de datos pidiendo la información (texto) de dicha sección.

Según lo estuve pensando, tengo dos formas diferentes de realizar estos espacios, y lo que les quiero preguntar es, según su criterio, ¿Cual creen ustedes que será mejor en lo que respecta a: SEGURIDAD y EFICIENCIA.

Opción 1:

Cada espacio es un DIRECTORIO real: Al crearse un espacio, se CREA un directorio y se CREAN los archivos .PHP con la información correspondiente para realizar las consultas a la base MySQL.

Para ingresar a los espacios se entra a la url: www.misitioweb.com/espacios/usuario/index.php

YO CONSIDERO: Va a haber mayor seguridad, ya que no hay información ingresada por GETS o POSTS directamente en el URL. Es decir, no van a poder "jugar" con los GETS por ejemplo, intentando hacer fallar el sistema.


Opción 2:

Existe un directorio único, con un archivo por sección. Cuando se llama a un archivo se debe ingresar la información vía GET por ejemplo, para indicar el espacio del usuario que se desea visitar. El archivo PHP controlara primero que exista el espacio, y si existe pedirá la información a la base de datos para mostrar.

Para ingresar a los espacios se entra a la url: www.misitioweb.com/espacios/index.php?espacio="jorge"

YO CONSIDERO: No me gusta lo de permitir al usuario jugar con la información que se pasa vía GETS en la URL... tal vez algún día alguien quiera "probar" descajetar el sistema metiendo "basura" en los gets. OBVIANDO las conocidas precauciones a tener en cuenta para estos casos (filtros, etc.) aun me da un poco de miedo.


Realmente es importante esta decisión, ya que de AQUI parto para crear toda la estructura, y creo que si tomo la decisión equivocada la solución de seguro me llevara algunos días de trabajo más de lo previsto, e incluso, un gran cambio en toda la estructura de información.

DESDE YA, estaré totalmente agradecido a quienes me puedan orientar un poco.

Les dejo un saludo y muchas gracias de antemano.

eDU
  #2 (permalink)  
Antiguo 12/03/2006, 01:46
 
Fecha de Ingreso: noviembre-2005
Ubicación: Córdoba - Argentina
Mensajes: 155
Antigüedad: 19 años
Puntos: 1
Mira Edu, yo usaría la opcion dos. Te doy mis razones.
1) Con al opcion uno, puede que te tome mucho espacio en el disco (del servidor) y ocuparte espacio. Ademas tendrias miles de carpetas (cuando tengas muchos usuarios)
2) Con la opcion dos usando un unico archivo podrias generar la pagina de todos los usuarios. Con el tema del GET, no creo que puedan intetar romperte la pagina, solo cambian el valor de "jorge" por el de "carlos" por ejemplo y se redirigiria al espacio de carlos.

De todas formas si no te gusta que se vea, podrias codificar el valor de la variable espacio en la url. y para la consulta en la BD la decodificas.

Que se yo, es mi opinion!
Saludos y suerte!
  #3 (permalink)  
Antiguo 12/03/2006, 03:49
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 10 meses
Puntos: 2
Gracias por responder NACHO.
Con lo de codificar la variable te referis a algo asi como lo que sucede con los webmails tipo hotmail que en el "GET" sale una ensalada de frutas?

¿Con que haria eso basicamente? Se me ocurre utilizar la misma funcion de encrypt. MD5 que se usa para los passwords... sera cuestion de probar.

MUCHAS GRACIAS NACHO!
  #4 (permalink)  
Antiguo 12/03/2006, 12:24
 
Fecha de Ingreso: noviembre-2005
Ubicación: Córdoba - Argentina
Mensajes: 155
Antigüedad: 19 años
Puntos: 1
si si podrias usar cualquiera. Yo varias veces para pasar variables por url y que los visitantes no entendieran que era use el codificador base64. Con este podes encriptar y desencriptar.

De nada!
  #5 (permalink)  
Antiguo 12/03/2006, 19:42
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 19 años, 5 meses
Puntos: 2
Como nacho004 te recomiendo, mis razones:
1º Como ya lo dijo él, el espacio y la cantidad de carpetas, pero sobre todo creo que si algún día llegan a descubrir un error en tu pagina y pueden hacer algo, vos tendrías que actualizar todos los .php de todas las carpetas
2º Sobre la seguridad, yo digo que mucho no te preocupes, teniendo una buena conducta a la hora de nuestro desarrollo (inicializar todas las variables, no confiar en nada que venga de "afuera", etc) no tendremos muchos problemas, aparte no hay algo que sea anti-hackers si alguien que sabe mucho lo quiere hacer lo hace, nada es imposible.
3º Si quieres que "parezca" que cada usuario están en distintas carpetas, lo que tendrías que utilizar el el mod_rewrite y ya.

Saludos y suerte.
  #6 (permalink)  
Antiguo 12/03/2006, 21:17
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 10 meses
Puntos: 2
Bueno me quedo bien claro, sinceramente habia dejado pasar el tema de la modificacion de los archivos php... me hubiera comida un buen dolor de cabeza si solo hubiera querido agregar un "detalle" teniendo muchos usuarios...

Definitivamente me quedo con la opcion B, el rewrite y los GETS codificados.

MUCHAS GRACIAS NACHO y DARIO!! Muy buena su onda.

Saludos.
  #7 (permalink)  
Antiguo 12/03/2006, 21:31
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 21 años, 6 meses
Puntos: 2
La opción dos... trabajando con reglas de apache el usuario nunca sabra que puede "jugar" con tu variable get... lo unico que podrá hacer es cambiar el nombre de usuario, alli solo tienes que poner un filtro...

Ni se me ocurre crear un directorio para cada usuario :/, dejaria de ser facil de administrar... imaginate si quieres hacer un rediseño, tendrás que cambiar los 7 archivos de cada directorio -imaginate cuando tengas 3.000 usuarios deberias subir nuevamente 21.000 archivos-

Variables y mod_rewrite ;)
__________________
I Love Programming...
  #8 (permalink)  
Antiguo 13/03/2006, 11:07
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 19 años, 5 meses
Puntos: 2
Y es más se me ocurrió que si llegas a usar mod_rewrite (este parece como si fueran carpetas) cuando el cliente quiera "jugar" y cambie de nombre no deberíamos preocuparnos en que vea en ves de carlos a ignacio pero ¿Que harías si este cuando "juega" ingresa uno que no existe? Se me ocurre para que siga dando la "impresión" de carpetas tire la pagina de error 404, ni se imaginarían que no son carpetas

Saludos.
  #9 (permalink)  
Antiguo 16/03/2006, 16:50
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 10 meses
Puntos: 2
que buena informacion me estan dando... estoy suepr agradecido! :)

Ya esta quedando muuy bien todo (cuando lo tenga terminado mando el link asi lo pueden ver).

Me interesaria saber con que reglas de apache puedo trabajar, es decir, el servidor en el que tengo alojado mi sitio no es de mi propiedad, pero se que aun asi hay algunos archivos de apache que funcionan como configuracion individual para cada usuario (como el .htaccess), a los cuales estoy algo familiarizado con su configuración.

¿podrias darme un ejemplo?

Yo despues me encargo (por supuesto) de buscar toda la info en internet.

Nuevamente, GRACIAS.
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:06.