2009-11-10 16 views

Respuesta

8
+9

El el segundo enlace es basura. La ofuscación no es * lo mismo que el encriptado. –

+1

Con respecto al segundo enlace: "Seguridad por oscuridad" no es recomendable, consulte el principio de Kerckhoff. – Calum

+0

¿podría decirme cuáles son las ventajas de usar aspnet_regiis?herramienta exe, cuando el archivo de cifrado solo se puede utilizar en la máquina local y no se puede utilizar en el servidor de alojamiento?! –

10

Rahul, la conversión de una cadena de ASCII a cadena de base 64 no es una encriptación, que es lo que sugiere tu primer enlace s. Podemos convertir fácilmente base64 a ASCII.

Usar configsection.protectSection() con una clave RSA es un cifrado adecuado que está disponible para las secciones del archivo Web.config.

Comprobar este enlace: http://www.beansoftware.com/ASP.NET-Tutorials/Encrypting-Connection-String.aspx

Tenga en cuenta, que no podemos cifrar el archivo Web.config en un entorno de alojamiento compartido en el nivel de confianza se establece en la confianza medio.

2

Para guardar tener que visitar los enlaces externos, en C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 (para .NET 4/4,5)

aspnet_regiis.exe -pe "connectionStrings" -app "/YourWebSiteName" -prov "DataProtectionConfigurationProvider" 

Para descifrar la sección connectionStrings uso de esta herramienta, puede especificar el siguiente comando en la herramienta aspnet_iisreg.exe.

aspnet_regiis.exe -pd "connectionStrings" -app "/YouWebSiteName" 
+0

¿podría decirme cuáles son las ventajas de usar la herramienta aspnet_regiis.exe cuando el archivo de cifrado solo se puede utilizar en una máquina local y no se puede usar en el servidor de alojamiento? –

+0

que realmente depende del motivo por el que desea encriptar el archivo; si es para desarrollo y no tiene información confidencial en su máquina de desarrollo, entonces no creo que tenga mucho sentido (aparte de las pruebas), sin embargo, en una servidor en vivo o una máquina donde hay información sensible que podría ser pirateada ... luego está su beneficio –

1

El cifrado es útil para dar seguridad a la aplicación. Encuentre los siguientes pasos para encriptar web.config.

  1. Open Command Prompt con privilegios de administrador
  2. En el símbolo del sistema, escriba
  3. cd C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319
  4. En caso de que su web se encuentra en Config "D: \ Artículos \ EncryptWebConfig" ruta del directorio, a continuación, introduzca la siguiente para cifrar el ConnectionString:
  5. aspnet_regiis -pef "connectionStrings" y "D: \ Artículos \ EncryptWebConfig

He usado otra cosa para más seguridad. En mi Web.config he agregado el siguiente código.

<httpProtocol> 
     <customHeaders> 
      <add name="x-Frame-Option" value="Deny or SEMEORGIN" /> 
      <remove name="Server" /> 
      <remove name="X-AspNet-Version" /> 
      <remove name="X-AspNetMvc-Version" /> 
      <remove name="X-Powered-By" />    
     </customHeaders> 
    </httpProtocol> 
1

Ejecutar este comando en: Aspnet_regiis.exe -pef "connectionStrings" "pathToWebConfig"

o, si se desea esto para ejecutar mediante programación puede crear un proceso:

  string fileName = @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe"; 

      if (8 == IntPtr.Size 
       || (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432")))) 
      fileName = @"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe"; 

      string arguments = $"-pef \"connectionStrings\" \"{application.Path}\""; 

      using (Process process = new Process()) 
      { 
       process.EnableRaisingEvents = true; 
       process.StartInfo = new ProcessStartInfo 
       { 
        FileName = exeName, 
        Arguments = arguments, 
        UseShellExecute = false, 
        RedirectStandardOutput = true, 
        RedirectStandardError = true, 
        CreateNoWindow = true 
       }; 

       process.Start(); 
       processOutput.Output = process.StandardOutput.ReadToEnd(); 
       bool exited = process.WaitForExit(timeoutMilliseconds); 
       if (exited) 
       { 
        processOutput.ExitCode = process.ExitCode; 
       } 
      } 
+0

¿podría decirme cuáles son las ventajas de usar la herramienta aspnet_regiis.exe, cuando el archivo de cifrado es utilizable en la máquina local y no puede uso en servidor de alojamiento?! –

Cuestiones relacionadas