2009-11-10 7 views

risposta

8
+9

Il il secondo link è spazzatura. L'offuscamento è * non * lo stesso della crittografia. –

+1

Per quanto riguarda il secondo link: "Sicurezza da oscurità" non è raccomandato, cercare il principio di Kerckhoffs. – Calum

+0

per favore dimmi quali sono i vantaggi dell'uso di aspnet_regiis.strumento exe, quando il file di crittografia è utilizzabile solo nella macchina locale e non può essere utilizzato nel server di hosting?! –

10

Rahul, la conversione di una stringa da ASCII a stringa base64 non è una crittografia, che è ciò che suggerisce il tuo primo link S. Possiamo convertire facilmente base64 in ASCII.

L'utilizzo di configsection.protectSection() con una chiave RSA è una crittografia corretta disponibile per le sezioni del file Web.config.

controllare questo link: http://www.beansoftware.com/ASP.NET-Tutorials/Encrypting-Connection-String.aspx

Si prega di notare, che non possiamo criptare file web.config in un ambiente di hosting condiviso in cui il livello fiduciario è impostato su medio fiducia.

2

Per salvare dover visitare link esterni, in C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 (per NET 4/4,5)

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

per decifrare sezione connectionStrings utilizzando questo strumento, è possibile specificare il seguente comando nello strumento aspnet_iisreg.exe.

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

per favore dimmi quali sono i vantaggi dell'utilizzo dello strumento aspnet_regiis.exe, quando il file di crittografia è utilizzabile solo nella macchina locale e non può essere utilizzato nel server di hosting ?! –

+0

che dipende davvero dal motivo per cui si desidera crittografare il file - se è per lo sviluppo e non si hanno informazioni sensibili sulla macchina di sviluppo, quindi non credo che ci sia molto da fare (tranne che per il test), tuttavia su un live server o una macchina in cui sono presenti informazioni riservate che potrebbero essere compromesse .. quindi vi è il vantaggio –

1

La crittografia è utile per garantire la sicurezza dell'applicazione. Si prega di trovare i seguenti passi per crittografare web.config.

  1. Aperta Prompt dei comandi con privilegi di amministratore
  2. Al prompt dei comandi, immettere
  3. cd C: \ Windows \ Microsoft.NET Framework \ v4.0.30319 \
  4. Nel caso in cui il vostro web Config si trova in "D: \ articoli \ EncryptWebConfig" percorso di directory, quindi digitare quanto segue per crittografare il ConnectionString:
  5. aspnet_regiis -pef "connectionStrings" "D: \ articoli \ EncryptWebConfig

Ho usato qualche altra cosa per maggiore sicurezza. Nel mio Web.config ho aggiunto il seguente codice.

<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

Esegui questo comando: aspnet_regiis.exe -pef "connectionStrings" "pathToWebConfig"

o, se si desidera che questo per eseguire programatically è possibile creare un processo:

  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

per favore dimmi quali sono i vantaggi dell'utilizzo dello strumento aspnet_regiis.exe, quando il file di crittografia è utilizzabile solo nella macchina locale e non può utilizzare nel server di hosting?! –

Problemi correlati