Foros del Web » Programando para Internet » PHP »

Seguridad en PHP

Estas en el tema de Seguridad en PHP en el foro de PHP en Foros del Web. Hola, estoy creando una web con una zona de administración de Usuarios que pueden realizar unos trámites a trevés de ella. El tema de la ...
  #1 (permalink)  
Antiguo 16/09/2004, 01:29
 
Fecha de Ingreso: febrero-2003
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 0
Seguridad en PHP

Hola, estoy creando una web con una zona de administración de Usuarios que pueden realizar unos trámites a trevés de ella. El tema de la seguridad me preocupa. Muchas son las dudas que me asaltan:
- Es necesario instalar las páginas de tramitación en un site secure https?
- Si el usuario debe introducir 2 contraseñas es más seguro que con 1?
- Llega con comprobar si el usuario y la contraseña coinciden en la base de datos e iniciar una sesión poniendo $login=1 y comparar en todas las paginas de tramitación ese valor?
- Como me podrían hackear los datos de los usuarios?
Gracias de antemano.
  #2 (permalink)  
Antiguo 16/09/2004, 22:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Cita:
- Es necesario instalar las páginas de tramitación en un site secure https?
Altamente recomendable que tus páginas estén bajo SSL. Tanto por la seguridad de tus própios datos (los del usuario que envia a tus servidores) como por temas de "confianza" de tu própio sitio (al ser seguro).

Cita:
- Si el usuario debe introducir 2 contraseñas es más seguro que con 1?
Muchos sistemas/aplicaciones (tipo bancos por ejemplo donde se hacen trasacciones de fondos en línea) .. en puntos críticos, pese ya estar validado tu sesión por una contraseña que se indicó para ingresar al sitio .. se vuelve a preguntar la contraseña nuevamente como medida extra de seguridad (ejemplo: tu usuario dejó abierto su navegador con su sitio ahí .. llega otra persona y hace la "maldad" en ese momento, caso extremo .. pero por poder suceder .. podría suceder).

Cita:
- Llega con comprobar si el usuario y la contraseña coinciden en la base de datos e iniciar una sesión poniendo $login=1 y comparar en todas las paginas de tramitación ese valor?
Bueno .. que sea "login=1" (un flag, bandera) o te bases en la existencia de alguna variable de sesión que guardes; ejemplos: el ID de tu usuario, su nick/nombre/identificativo depende de tu aplicación. Es más útil guardar el ID de tu usuario como para usarlo en registros de acciones (log's, creación de registros en tus BD.. etc) que no tener un "login=1" como simple flag. En este caso .. te basas en la existencia de dicha variable de sesión (ese tal $_SESSION['id_usuario'] ...) mas que en su valor (salvo algún tipo de validación extra según tu "work flow" de tu aplicación (niveles de seguridad/permisos que otorgues en tu aplicación).

Cita:
- Como me podrían hackear los datos de los usuarios?
Bueno .. normalmente esos "hackeos" de una sesión se ocasionan por falta de configuración del tema sesiones o mal uso de estas (por ejemplo usando las variables de sesión como gloables es altamente peligroso, en su lugar usar: $_SESSION (los arrays superglobales). Tienes más detalles al respecto en este excelente documento de lectura recomendada:

http://www.acros.si/papers/session_fixation.pdf

Te vendría bien leer tambien sobre problemas con:
SQL injection y Cross-site scripting (usa google ... veras mucha documentación al respecto).

Un saludo,
  #3 (permalink)  
Antiguo 17/09/2004, 00:45
 
Fecha de Ingreso: febrero-2003
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 0
Muchas gracias, Cluster, con esto ya tengo para rato. Por cierto, una vez alguien me comentó que para colgar una base de datos en internet con datos personales hay que solicitar un permiso a algun organismo. Sabes si esto es cierto?
PD: El archivo pdf al q me remites parece muy interesante, cojo diccionario y me pongo ya a descifrarlo, gracias!!!
  #4 (permalink)  
Antiguo 17/09/2004, 01:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Cita:
Por cierto, una vez alguien me comentó que para colgar una base de datos en internet con datos personales hay que solicitar un permiso a algun organismo. Sabes si esto es cierto?
Supongo que te referiras a la LSSI (http://www.derecho.com/especiales/especial_lssi.xml) .. eso sólo rige para servicios que prestes en España y no sé si algún otro pais tendrá algunas políticas de protección de datos similar .. Lo que es Latinoamerica por ejemplo no hay leyes al respecto (que yo sepa).

Un saludo,
  #5 (permalink)  
Antiguo 17/09/2004, 04:11
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Bueno, la ley española de datos personales es la LOPD, y es aplicable siempre que tengas un fichero (llistado, base de datos, ...) de datos personales, aunque no la cuelges en internet.

Aunque lo mejor es consultar los temas legales con un profesional de las leyes (abogado, asesor, ...).

Y otro ejemplo de sitios que te piden la contraseña estando ya validados son los sistemas de usuarios que te permiten cambiar la contraseña y/o el email. Por si alguien accede a la sesion sin saber la contraseña, para que no cambie la contraseña (bloqueando al usuario original) o cambie la direccion de email donde se envia el recordatorio de contraseña.

Tambien tienes que tener una "politica de contraseñas", exigiendo que las contraseñas cumplan ciertas caracteristicas que dificulten los ataques. Por ejemplo, un tamaño minimo de 8 caracteres, y que contenga caracteres en mayusculas y minusculas (incluso numeros). Asi dificultas los ataques de "diccionario" (probar con un conjunto definido de palabras como contraseñas).

Doy por supuesto que el servidor es seguro a ataques a su SO y/o red, y que almacenas las contraseñas encriptadas. Por muy segura que sea tu aplicacion, si meten un rootkit en tu proveedor de servidor y obtiene acceso directo a las bases de datos y ficheros, pues no ha servido para nada. Aunque ese tema ya es problema del administrador del servidor.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 03:54.