2009-11-10 4 views

Répondre

8
+9

Le le deuxième lien est la poubelle. L'obscurcissement n'est * pas * le même que le cryptage. –

+1

Concernant le deuxième lien: "La sécurité par l'obscurité" n'est pas recommandé, regardez le principe de Kerckhoffs. – Calum

+0

pourriez-vous s'il vous plaît me dire quels sont les avantages d'utiliser aspnet_regiis.exe outil, lorsque le fichier de chiffrement est juste utilisable dans la machine locale et ne peut pas utiliser dans le serveur d'hébergement?! –

10

Rahul, la conversion d'une chaîne ASCII en chaîne base64 est pas un cryptage, ce qui est ce que votre premier lien suggère s. Nous pouvons facilement convertir base64 en ASCII.

L'utilisation de configsection.protectSection() avec une clé RSA est un chiffrement approprié disponible pour les sections du fichier Web.config.

Vérifiez ce lien: http://www.beansoftware.com/ASP.NET-Tutorials/Encrypting-Connection-String.aspx

S'il vous plaît noter que nous ne pouvons pas chiffrer le fichier web.config dans un environnement d'hébergement partagé où le niveau confiance est réglé sur la confiance moyenne.

2

Pour éviter d'avoir à visiter des liens externes, dans C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 (pour .NET 4/4,5)

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

Pour déchiffrer la section connectionStrings à l'aide de cet outil, vous pouvez spécifier la commande suivante dans l'outil aspnet_iisreg.exe.

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

pourriez-vous s'il vous plaît me dire quels sont les avantages de l'utilisation de l'outil aspnet_regiis.exe, lorsque le fichier de chiffrement est juste utilisable dans la machine locale et ne peut pas utiliser dans le serveur d'hébergement?! –

+0

cela dépend vraiment de la raison pour laquelle vous voulez crypter le fichier - si c'est pour le développement et vous n'avez pas d'informations sensibles sur votre machine dev, alors je ne pense pas qu'il y ait beaucoup de points (sauf pour tester), mais sur un serveur en direct ou une machine où il y a des informations sensibles qui pourraient être piratées .. alors il y a votre avantage –

1

Le cryptage est utile pour sécuriser l'application. Veuillez trouver les étapes suivantes pour chiffrer web.config.

  1. Ouvrir Invite de commandes avec des privilèges d'administrateur
  2. À l'invite de commande, entrez
  3. cd C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319
  4. Dans le cas où votre configuration Web est situé dans "D: \ articles \ EncryptWebConfig" chemin du répertoire, puis entrez les informations suivantes pour chiffrer le ConnectionString:
  5. aspnet_regiis de les "connectionStrings" « D: \ articles \ EncryptWebConfig

J'ai utilisé autre chose pour plus de sécurité. Dans mon Web.config j'ai ajouté le code suivant.

<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

Exécuter ce Command: ASPNET_REGIIS.EXE -pef "connectionStrings" "pathToWebConfig"

ou, si vous voulez que cela fonctionne, vous pouvez créer un processus programatically:

  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

pourriez-vous me dire s'il vous plaît quels sont les avantages de l'utilisation de aspnet_regiis.exe outil, lorsque le fichier de cryptage est utilisable dans la machine locale et ne peut pas utiliser dans le serveur d'hébergement?! –

Questions connexes