6

Estamos migrando uno de nuestros sitios a ASP.Net. No queremos utilizar la seguridad integrada, que usa la cuenta de Windows para conectarse al servidor sql (no vamos a entrar en el por qué, simplemente está fuera de cuestión). Creamos un nombre de usuario y una contraseña para conectarnos a SQL Server, y nos gustaría utilizar ese nombre de usuario y contraseña, sin embargo, tampoco queremos que otros desarrolladores vean esta información (se puede leer fácilmente desde web.config) ... Lo sé se puede encriptar, pero los desarrolladores pueden descifrarlo con la misma facilidad; además, el cifrado tiene un impacto en el rendimiento..Net SQL Server Connection String: oculte la contraseña de otros desarrolladores

¿Hay alguna solución a este problema?

Respuesta

2

aquí hay un buen tutorial sobre Encrypting Configuration Information in ASP.NET 2.0 Applications

simplemente no dan los otros desarrolladores de la llave

Como alternativa, puede bloquear la autenticación de SQL a través de certificados instalados. De esta manera está configurando la seguridad en función del cliente y no del usuario. http://msdn.microsoft.com/en-us/library/ff649255.aspx

Nuestra práctica habitual es tener un "Acceso de desarrollador" utilizado en la base de datos de desarrollo que tiene acceso limitado y tiene un nombre de usuario/contraseña diferente para el cuadro de producción. Los desarrolladores no tienen acceso a la caja de producción, solo los desarrolladores principales, y luego la producción web.config se copia a través de la secuencia de comandos de implementación.

+1

Esto se aplica al mío y a sus comentarios ya que nunca he cifrado un archivo web.config. Pero después de leer su enlace, ¿qué impide que un desarrollador configure un objeto (dim sqlConn como nueva sqlconnection (getConfigSection), IIS descifra automáticamente) y luego establece una variable de cadena = object.connectionString? ¿O usar el depurador para obtener esa información haciendo una depuración paso a paso? – Tommy

+0

va a tener que autenticarse fuera de la estación de trabajo o un certificado, porque todos los desarrolladores tendrán acceso al depurador – Glennular

0

¿Los desarrolladores necesitan acceso al archivo web.config? Si es así, creo que puede que no tenga suerte. Si no, lo que significa que no necesitan cambiar el archivo web.config, cambie los permisos para que solo los administradores y el proceso asp.net puedan leer el archivo.

0

En mi experiencia, tiende a ser difícil ocultar ese tipo de cosas de sus desarrolladores internos. Incluso el cifrado de la información de configuración en el webconfig aún se mostraría si sus desarrolladores solo pasaron por el código ...

Supongo que, si TIENE que hacer esto, podría crear una cadena constante privada en el código para su Cadena de DB y luego use Dotfuscator o similar en la aplicación compilada. Obviamente, el código fuente también debería estar encriptado o, de lo contrario, sus desarrolladores no deberían poder acceder a él.

0

Realmente no puede proteger la contraseña de los desarrolladores, además, ¿qué sentido tiene? Lo que puede hacer es tener un servidor de desarrollo separado al que los desarrolladores tengan acceso y un entorno de producción, al cual no pertenecen.

¿No es necesario que los desarrolladores inicien sesión directamente en la base de datos para ejecutar algunas pruebas o algo así? si lo hacen, tendría sentido hacer la prueba utilizando la misma cuenta que utiliza la aplicación, de lo contrario, los resultados de la prueba pueden no reflejar la realidad.

0

prompt for the password, cuando se conecta por primera vez y rastrea la contraseña en la sesión. Ahora solo podrás conectar la base de datos desde cualquier lugar. Redirija a todos aquellos a la página de la aplicación no disponible para que el resto de los usuarios no tengan la contraseña.

Cuestiones relacionadas