2010-05-26 21 views
6

Actualmente estoy desarrollando una aplicación C# con un back-end SQL Server DB. Me estoy acercando al punto de despliegue y a un problema. La aplicación se implementará dentro de una red de directorio activo. En lo que respecta a la autenticación de SQL, entiendo que tengo 2 opciones: Autenticación de Windows o Autenticación del servidor.C# & SQL Server Autenticación

Si uso la Autenticación del servidor, me preocupa que el nombre de usuario y la contraseña de la cuenta se almacenen en texto plano en el archivo app.config y, por lo tanto, dejan la base de datos vulnerable.

El uso de Windows Authenticaiton evitará este problema, sin embargo, significaría dar a cada miembro del personal dentro de nuestra organización acceso de lectura/escritura a la base de datos para ejecutar la aplicación correctamente. Si bien esto está bien, también significa que pueden conectarse fácilmente a la base de datos a través de otros medios y alterar directamente los datos fuera de la aplicación.

Supongo que hay algo muy obvio que me falta aquí, pero he estado buscando en Google toda la noche en vano. ¡Cualquier consejo/guía sería muy apreciado!

Peter


Suma - mi proyecto no se basa de Windows Forms ASP.NET - se cifrar el archivo app.config todavía la respuesta correcta? Si es así, ¿alguien tiene algún ejemplo que no esté basado en ASP.NET?

+0

¿Es esta una aplicación de winforms? –

+0

Sí, es una aplicación winforms – Peter

+1

actualizó mi respuesta con un enlace a una muestra genérica de .NET sobre cómo cifrar un archivo app.config (no web.config) para protección –

Respuesta

3

Si Uso la autenticación del servidor, estoy preocupado de que el nombre de usuario y la contraseña para la cuenta sean almacenados en texto plano en la app.config archivo, y por lo tanto deja la base de datos vulnerable.

Siempre puede crear una cadena de conexión en su app.config y encrypt that connection string section. Esto funciona tanto para ASP.NET como para aplicaciones de consola, aplicaciones Winforms, aplicaciones WPF, es una tecnología base .NET.

Consulte Jon Galloway's Encryping Passwords in a .NET app.config para obtener una muestra que no sea de ASP.NET de cómo hacer esto.

Uso de Windows Authenticaiton se evitar este problema, sin embargo, sería significa dar a cada miembro del personal dentro de nuestra organización de lectura/escritura acceso a la base de datos con el fin de ejecutar la aplicación correctamente.

Sí - pero se puede aliviar la carga:

  • se puede autenticar a un grupo/Windows AD - todo el mundo que es un miembro de ese grupo tiene acceso - no hay necesidad de que los permisos de forma individual a cada usuario

  • si utiliza las vistas para la recuperación de datos y los procesos almacenados para insertar/actualizar/eliminar, ni siquiera tendrá que dar a esos usuarios acceso directo a la tabla y puede proteger su base de datos de la manipulación inapropiada

0

opción más sencilla sería la de almacenar el nombre de usuario y contraseña en el web.config, entonces encrypt them

+0

La mayoría de los artículos que estoy leyendo parecen usar encriptación para proyectos web (ASP.NET), pero mi proyecto es un formulario de Windows. ¿Se pueden aplicar los mismos principios o hay algo más que debo analizar? – Peter

+0

@Peter Greenall: funciona para cualquier aplicación .NET - Lo he usado para aplicaciones de consola, Winforms, ASP.NET - ** no ** se limita a ASP.NET, aunque la mayoría de las muestras son ASP.NET –

0

Siempre puede encriptar los datos en app.config.

Este link tiene más información.

Cuestiones relacionadas