php - persona - ¿Podemos hackear un sitio que simplemente almacena el nombre de usuario como una variable de sesión?
hackear whatsapp (2)
En general, la sesión es del lado del servidor, pero si de alguna manera obtengo la identificación de sesión, puedo secuestrarla.
Recomiendo al menos almacenar el IP y quizás también el User-Agent, y en caso de discrepancia, invalidar la sesión.
Desarrollé mi sitio web que verifica si el usuario está registrado y crea una variable de sesión con el nombre de usuario. Es todo lo que se almacena como una variable de sesión. Si quiero proteger mis páginas (para que solo los usuarios registrados puedan verlas), verifico si la variable de sesión está configurada. ¿Esto es seguro? ¿O puedes dar un método más seguro?
Básicamente, puedes almacenar lo que quieras en Session. Las únicas salvedades son:
- si no está utilizando conexiones seguras (como SSL), el sessionId puede ser olfateado y secuestrado. Esto no tiene importancia porque el nombre de usuario y el pase también pueden ser secuestrados, y usted está sujeto a ataques de "hombre en el medio", etc. Así que, básicamente, su sistema está bien y proporciona baja seguridad sin SSL.
- En los artículos sobre PHP mencionan algunas preocupaciones con el alojamiento compartido y el secuestro de la sesión. No estoy seguro de si esto es cierto, así que he publicado una pregunta aquí . Editar: esta preocupación parece ser real, por lo que tendrá que usar una de las soluciones para almacenar la sesión (por ejemplo, la base de datos) si usa PHP.
En general, sin embargo, la mayoría de las preocupaciones de seguridad mencionadas (incluidos los ataques XSS) no son para almacenar cosas en Session, sino más bien preocupaciones de seguridad generales. Almacenar ID de usuario - o alguna forma encriptada de la misma - en Session es generalmente bastante segura.
Lo más importante: si utilizara su propio algoritmo para generar un código de cookie aleatorio para cada usuario, sin duda tendría más fallos de seguridad (no ser un experto) que los algoritmos de generación de clave de sesión de PHP, ASP.NET, Rails. , lo que sea...
Podría encontrar una cita más apropiada de Bruce Schneier, pero esta hará: "Nadie puede duplicar la confianza que ofrece RSA después de 20 años de revisión criptoanalítica".