2009-11-10 18 views

Antwort

8
+9

Die zweiter Link ist Müll. Das Verschleiern ist * nicht * das Gleiche wie das Verschlüsseln. –

+1

In Bezug auf den zweiten Link: "Sicherheit durch Dunkelheit" wird nicht empfohlen, Look-up Kerckhoffs Prinzip. – Calum

+0

würden Sie mir bitte sagen, was die Vorteile der Verwendung von aspnet_regiis ist.exe-Tool, wenn die Verschlüsselungsdatei nur auf dem lokalen Rechner verwendbar ist und nicht im Hosting-Server verwendet werden kann? –

10

Rahul, eine Zeichenfolge von ASCII in base64 String Umwandlung keine Verschlüsselung ist, Das ist, was Ihr erster Link vorschlagen s. Wir können base64 einfach in ASCII konvertieren.

Verwenden von configsection.protectSection() mit einem RSA-Schlüssel ist eine ordnungsgemäße Verschlüsselung, die für Abschnitte der Datei Web.config verfügbar ist.

prüfen Sie diesen Link: http://www.beansoftware.com/ASP.NET-Tutorials/Encrypting-Connection-String.aspx

Bitte beachten Sie, dass wir nicht Web.config-Datei in einer Shared-Hosting-Umgebung, in der Vertrauensebene Medium Vertrauen gesetzt verschlüsseln können.

2

Um mit besuchen externen Links, in C zu sparen: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 (für .NET 4/4,5)

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

Um Abschnitt connection mit diesem Werkzeug zu entschlüsseln, Sie können folgenden Befehl im Tool aspnet_iisreg.exe angeben.

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

Würden Sie mir bitte sagen, was die Vorteile der Verwendung von aspnet_regiis.exe Tool ist, wenn die Verschlüsselungsdatei nur auf dem lokalen Rechner verwendbar ist und nicht in Hosting-Server verwendet werden kann? –

+0

das hängt wirklich davon ab, warum Sie die Datei verschlüsseln wollen - wenn es für die Entwicklung ist und Sie keine sensiblen Informationen auf Ihrem Dev-Rechner haben, dann denke ich, dass es nicht viel Sinn macht (außer zum Testen), aber auf einem Live-Server oder eine Maschine, wo es sensible Informationen gibt, die gehackt werden könnten .. dann gibt es Ihren Vorteil –

1

Verschlüsselung ist nützlich, um der Anwendung Sicherheit zu geben. Führen Sie die folgenden Schritte aus, um web.config zu verschlüsseln.

  1. Befehl Öffnen mit Privilegien Administrator Prompt
  2. an der Eingabeaufforderung, geben Sie
  3. cd C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319
  4. Wenn Ihr Web-Config befindet sich in "D: \ Artikel \ EncryptWebConfig" Verzeichnispfad, und geben Sie die folgenden die Connectionstring zu verschlüsseln:
  5. aspnet_regiis -pef "connection" „D: \ Artikel \ EncryptWebConfig

Ich habe etwas anderes für mehr Sicherheit. In meiner Web.config habe ich folgenden Code hinzugefügt.

<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

Run dies in Command: aspnet_regiis.exe -pef "connection" "pathToWebConfig"

oder, falls Sie diese programmatisch ausführen möchten, können Sie einen Prozess erstellen:

  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

Würden Sie mir bitte sagen, was die Vorteile der Verwendung von aspnet_regiis.exe Tool ist, wenn die Verschlüsselungsdatei nur in der lokalen Maschine verwendet werden kann und kann Verwenden Sie in Hosting-Server? –