Pregunta

pregunta muy simple: Tengo sitio de administración en mi proyecto web. Así que, ¿cómo puedo hacerlo seguro?

Lo que tengo hasta ahora:

  • Base de datos manejado usuario con ID de usuario y userlevel
  • en el pageload de la página de administración maestro (que incluye todos los sitios de administración) hay una cláusula de identificación de usuario para comprobar si está bien (conseguir que el usuario de base de datos) y si es correcto userlevel
  • Si no, redirigir a la página Default.aspx con normalidad maestro
  • Si es así, vaya trought

¿Qué tan seguro es realmente?


Editar:

  • El ID de usuario se guarda en una sesión en el servidor.
  • No hay manera de salvar el inicio de sesión (no hay galletas).
  • El usuario debe iniciar sesión para obtener el ID de usuario en la sesión
  • El inicio de sesión se guarda en una tabla de base de user_log con nombre de usuario, contraseña, IP, ID de usuario y loginsucceeded
¿Fue útil?

Solución

La idea básica se ve bien. Todo se reduce a cómo se está consiguiendo que los ID de usuario para hacer las comprobaciones contra. Si el ID de usuario se pasa como una cadena de consulta, entonces eso es muy malo. Si se almacena en una sesión a través de sometype de la autorización previa, entonces es mejor. Si está utilizando SSL, la comprobación de IP, etc. mejorará su nivel de seguridad.

Lo principal es COMO que está recibiendo el ID de usuario para verificar contra. Ahí es donde el exploit va a producir. Asegure que el proceso y que debe estar bien con su configuración.

Editar Sobre la base de su actualización de esto se ve bien, pero también depende de qué tan seguro que realmente necesita que esto sea. ¿Qué tan seguro es su página de registro? ¿Está utilizando SSL? Ningún tipo de preocupaciones acerca de la sesión highjacking? ¿Por qué no almacenar una IP con el ID de usuario y verificar la solicitud de IP en contra de la IP almacenada cuando se hace la identificación de usuario buscar a partir de la sesión?

Hay tantas soluciones de seguridad que hay. Es necesario decidir hasta dónde tiene que ir con seguridad para garantizar el nivel de seguridad que es necesario para su aplicación particular.

Otros consejos

Utilizar autenticación de Windows integrada.

  1. En el Administrador de IIS, haga clic en la pestaña "Seguridad del directorio"
  2. Desactive la opción "Acceso Anónimo"
  3. Marque "autenticación integrada de Windows"

Esto le permite determinar quién tiene derecho a su sitio de administración mediante la modificación de las cuentas de dominio en lugar de utilizar una solución para enrollar a mano propia. Usted todavía puede obtener las credenciales del usuario que ha iniciado sesión en medio de la clase para el Medio Ambiente, que se puede utilizar para asociar propiedades en la web específica para cada usuario que desee almacenar en su base de datos. Esto también tiene la ventaja de manejar de forma automática los tiempos de espera, relogin requisito si el navegador se cierra, etc.

Su solución parece casi bien, aunque suena como si va a añadir cuentas de usuario individuales con el servidor SQL en lugar de manejar todo a través de la cuenta de inicio de sesión del servicio de ASP.NET. Yo evitaría la adición de cuentas de usuario individuales en su base de datos. En ASP.NET, a menos que usted está saltando a través de unos aros inútiles, la cuenta de servicio de ASP.NET es lo que está autenticado para la conectividad de base de datos, no el usuario que ha iniciado sesión en el sitio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top