Protection des chaînes de connexion et d’autres informations de configuration (C#)
par Scott Mitchell
Une application ASP.NET stocke généralement les informations de configuration dans un fichier Web.config. Certaines de ces informations sont sensibles et justifient une protection. Par défaut, ce fichier ne sera pas servi à un visiteur du site Web, mais un administrateur ou un pirate peut accéder au système de fichiers du serveur Web et afficher le contenu du fichier. Dans ce tutoriel, nous apprenons que ASP.NET 2.0 nous permet de protéger les informations sensibles en chiffrant les sections du fichier Web.config.
Introduction
Les informations de configuration pour les applications ASP.NET sont généralement stockées dans un fichier XML nommé Web.config
. Au cours de ces didacticiels, nous avons mis à jour quelques Web.config
fois. Lors de la création du Northwind
Jeu de données typé dans le premier tutoriel, par exemple, chaîne de connexion informations ont été ajoutées Web.config
automatiquement dans la <connectionStrings>
section. Plus tard, dans le didacticiel de navigation des pages maîtres et du site, nous avons mis à jour Web.config
manuellement, en ajoutant un <pages>
élément indiquant que toutes les pages ASP.NET de notre projet doivent utiliser le DataWebControls
thème.
Dans la mesure Web.config
où il peut contenir des données sensibles telles que des chaîne de connexion, il est important que le contenu d’être Web.config
conservé en sécurité et masqué des visionneuses non autorisées. Par défaut, toute requête HTTP adressée à un fichier avec l’extension .config
est gérée par le moteur ASP.NET, qui retourne le message de ce type de page n’est pas servi dans la figure 1. Cela signifie que les visiteurs ne peuvent pas afficher le contenu de votre Web.config
fichier en entrant http://www.YourServer.com/Web.config simplement dans leur barre d’adresses du navigateur.
Figure 1 : La visite Web.config
via un navigateur renvoie un message de ce type de page (cliquez pour afficher l’image de taille complète)
Mais que se passe-t-il si un attaquant est en mesure de trouver un autre exploit qui lui permet d’afficher le contenu de votre Web.config
fichier ? Qu’est-ce qu’un attaquant peut faire avec ces informations et quelles mesures peuvent être prises pour protéger davantage les informations sensibles au sein Web.config
de ces informations ? Heureusement, la plupart des sections ne Web.config
contiennent pas d’informations sensibles. Quel préjudice un attaquant peut-il perpétrer s’il connaît le nom du thème par défaut utilisé par vos pages ASP.NET ?
Toutefois, certaines Web.config
sections contiennent des informations sensibles qui peuvent inclure des chaîne de connexion, des noms d’utilisateur, des mots de passe, des noms de serveur, des clés de chiffrement, etc. Ces informations se trouvent généralement dans les sections suivantes Web.config
:
<appSettings>
<connectionStrings>
<identity>
<sessionState>
Dans ce tutoriel, nous allons examiner les techniques de protection de ces informations de configuration sensibles. Comme nous le verrons, .NET Framework version 2.0 inclut un système de configurations protégés qui permet de chiffrer et déchiffrer par programmation les sections de configuration sélectionnées.
Remarque
Ce tutoriel se termine par un aperçu des recommandations de Microsoft relatives à la connexion à une base de données à partir d’une application ASP.NET. Outre le chiffrement de vos chaîne de connexion, vous pouvez renforcer votre système en vous assurant que vous vous connectez à la base de données de manière sécurisée.
Étape 1 : Exploration des options de configuration protégées de ASP.NET 2.0
ASP.NET 2.0 inclut un système de configuration protégé pour le chiffrement et le déchiffrement des informations de configuration. Cela inclut des méthodes dans le .NET Framework qui peuvent être utilisées pour chiffrer ou déchiffrer par programmation les informations de configuration. Le système de configuration protégé utilise le modèle de fournisseur qui permet aux développeurs de choisir l’implémentation de chiffrement utilisée.
Le .NET Framework est fourni avec deux fournisseurs de configuration protégés :
RSAProtectedConfigurationProvider
- utilise l’algorithme RSA asymétrique pour le chiffrement et le déchiffrement.DPAPIProtectedConfigurationProvider
- utilise l’API de protection des données Windows (DPAPI) pour le chiffrement et le déchiffrement.
Étant donné que le système de configuration protégé implémente le modèle de conception du fournisseur, il est possible de créer votre propre fournisseur de configuration protégé et de le connecter à votre application. Pour plus d’informations sur ce processus, consultez Implémentation d’un fournisseur de configuration protégé.
Les fournisseurs RSA et DPAPI utilisent des clés pour leurs routines de chiffrement et de déchiffrement, et ces clés peuvent être stockées au niveau de l’ordinateur ou de l’utilisateur. Les clés au niveau de l’ordinateur sont idéales pour les scénarios où l’application web s’exécute sur son propre serveur dédié ou s’il existe plusieurs applications sur un serveur qui doivent partager des informations chiffrées. Les clés au niveau de l’utilisateur sont une option plus sécurisée dans les environnements d’hébergement partagé où d’autres applications sur le même serveur ne doivent pas être en mesure de déchiffrer les sections de configuration protégées de votre application.
Dans ce tutoriel, nos exemples utiliseront le fournisseur DPAPI et les clés au niveau de l’ordinateur. Plus précisément, nous allons examiner le chiffrement de la <connectionStrings>
section dans Web.config
, bien que le système de configuration protégé puisse être utilisé pour chiffrer la plupart des Web.config
sections. Pour plus d’informations sur l’utilisation de clés de niveau utilisateur ou sur l’utilisation du fournisseur RSA, consultez les ressources de la section Autres lectures à la fin de ce tutoriel.
Remarque
Les RSAProtectedConfigurationProvider
fournisseurs et DPAPIProtectedConfigurationProvider
les fournisseurs sont inscrits dans le machine.config
fichier avec les noms RsaProtectedConfigurationProvider
du fournisseur et DataProtectionConfigurationProvider
, respectivement. Lors du chiffrement ou du déchiffrement des informations de configuration, nous devons fournir le nom du fournisseur approprié (RsaProtectedConfigurationProvider
ou DataProtectionConfigurationProvider
) plutôt que le nom de type réel (RSAProtectedConfigurationProvider
et DPAPIProtectedConfigurationProvider
). Vous trouverez le machine.config
fichier dans le $WINDOWS$\Microsoft.NET\Framework\version\CONFIG
dossier.
Étape 2 : Sections de configuration de chiffrement et de déchiffrement par programmation
Avec quelques lignes de code, nous pouvons chiffrer ou déchiffrer une section de configuration particulière à l’aide d’un fournisseur spécifié. Le code, comme nous le verrons bientôt, doit simplement référencer par programmation la section de configuration appropriée, appeler son ou UnprotectSection
sa ProtectSection
méthode, puis appeler la Save
méthode pour conserver les modifications. En outre, .NET Framework inclut un utilitaire de ligne de commande utile qui peut chiffrer et déchiffrer les informations de configuration. Nous allons explorer cet utilitaire de ligne de commande à l’étape 3.
Pour illustrer la protection par programmation des informations de configuration, nous allons créer une page ASP.NET qui inclut des boutons pour chiffrer et déchiffrer la <connectionStrings>
section dans Web.config
.
Commencez par ouvrir la EncryptingConfigSections.aspx
page dans le AdvancedDAL
dossier. Faites glisser un contrôle TextBox de la boîte à outils sur le Concepteur, en définissant sa ID
propriété sur WebConfigContents
, sa TextMode
propriété MultiLine
sur , et ses Width
Rows
propriétés sur 95 % et 15 , respectivement. Ce contrôle TextBox affiche le contenu de ce qui nous permet de Web.config
voir rapidement si le contenu est chiffré ou non. Bien sûr, dans une application réelle, vous ne voudriez jamais afficher le contenu de Web.config
.
Sous la zone de texte, ajoutez deux contrôles Button nommés EncryptConnStrings
et DecryptConnStrings
. Définissez leurs propriétés de texte pour chiffrer les chaînes de connexion et déchiffrer les chaînes de connexion.
À ce stade, votre écran doit ressembler à la figure 2.
Figure 2 : Ajouter une zone de texte et deux contrôles web bouton à la page (cliquez pour afficher l’image de taille complète)
Ensuite, nous devons écrire du code qui charge et affiche le contenu de la WebConfigContents
zone de Web.config
texte lorsque la page est chargée pour la première fois. Ajoutez le code suivant à la classe code-behind de la page. Ce code ajoute une méthode nommée DisplayWebConfig
et l’appelle à partir du Page_Load
gestionnaire d’événements quand est Page.IsPostBack
false
:
protected void Page_Load(object sender, EventArgs e)
{
// On the first page visit, call DisplayWebConfig method
if (!Page.IsPostBack)
DisplayWebConfig();
}
private void DisplayWebConfig()
{
// Reads in the contents of Web.config and displays them in the TextBox
StreamReader webConfigStream =
File.OpenText(Path.Combine(Request.PhysicalApplicationPath, "Web.config"));
string configContents = webConfigStream.ReadToEnd();
webConfigStream.Close();
WebConfigContents.Text = configContents;
}
La DisplayWebConfig
méthode utilise la File
classe pour ouvrir le fichier s de Web.config
l’application, laStreamReader
classe pour lire son contenu dans une chaîne et la Path
classe pour générer le chemin d’accès physique au Web.config
fichier. Ces trois classes sont toutes trouvées dans l’espace System.IO
de noms. Par conséquent, vous devez ajouter une using
System.IO
instruction en haut de la classe code-behind ou, sinon, préfixer ces noms System.IO.
de classes .
Ensuite, nous devons ajouter des gestionnaires d’événements pour les deux événements de contrôles Click
Button et ajouter le code nécessaire pour chiffrer et déchiffrer la section à l’aide d’une clé au niveau de l’ordinateur <connectionStrings>
avec le fournisseur DPAPI. Dans le Concepteur, double-cliquez sur chacun des boutons pour ajouter un gestionnaire d’événements Click
dans la classe code-behind, puis ajoutez le code suivant :
protected void EncryptConnStrings_Click(object sender, EventArgs e)
{
// Get configuration information about Web.config
Configuration config =
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
// Let's work with the <connectionStrings> section
ConfigurationSection connectionStrings = config.GetSection("connectionStrings");
if (connectionStrings != null)
// Only encrypt the section if it is not already protected
if (!connectionStrings.SectionInformation.IsProtected)
{
// Encrypt the <connectionStrings> section using the
// DataProtectionConfigurationProvider provider
connectionStrings.SectionInformation.ProtectSection(
"DataProtectionConfigurationProvider");
config.Save();
// Refresh the Web.config display
DisplayWebConfig();
}
}
protected void DecryptConnStrings_Click(object sender, EventArgs e)
{
// Get configuration information about Web.config
Configuration config =
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
// Let's work with the <connectionStrings> section
ConfigurationSection connectionStrings =
config.GetSection("connectionStrings");
if (connectionStrings != null)
// Only decrypt the section if it is protected
if (connectionStrings.SectionInformation.IsProtected)
{
// Decrypt the <connectionStrings> section
connectionStrings.SectionInformation.UnprotectSection();
config.Save();
// Refresh the Web.config display
DisplayWebConfig();
}
}
Le code utilisé dans les deux gestionnaires d’événements est presque identique. Ils commencent par obtenir des informations sur le fichier d’application Web.config
actuel via laWebConfigurationManager
méthode de classe.OpenWebConfiguration
Cette méthode retourne le fichier de configuration web pour le chemin d’accès virtuel spécifié. Ensuite, la Web.config
section s du <connectionStrings>
fichier est accessible via laConfiguration
méthode s de GetSection(sectionName)
classe, qui retourne un ConfigurationSection
objet.
L’objet ConfigurationSection
inclut une SectionInformation
propriété qui fournit des informations et des fonctionnalités supplémentaires concernant la section de configuration. Comme le montre le code ci-dessus, nous pouvons déterminer si la section de configuration est chiffrée en vérifiant la propriété de IsProtected
la SectionInformation
propriété. De plus, la section peut être chiffrée ou déchiffrée via les SectionInformation
méthodes et UnprotectSection
les propriétésProtectSection(provider)
.
La ProtectSection(provider)
méthode accepte comme entrée une chaîne spécifiant le nom du fournisseur de configuration protégé à utiliser lors du chiffrement. Dans le EncryptConnString
gestionnaire d’événements Button, nous transmettons DataProtectionConfigurationProvider à la ProtectSection(provider)
méthode afin que le fournisseur DPAPI soit utilisé. La UnprotectSection
méthode peut déterminer le fournisseur utilisé pour chiffrer la section de configuration et ne nécessite donc aucun paramètre d’entrée.
Après avoir appelé la ou UnprotectSection
la ProtectSection(provider)
méthode, vous devez appeler la Configuration
méthode de l’objet Save
pour conserver les modifications. Une fois les informations de configuration chiffrées ou déchiffrées et les modifications enregistrées, nous appelons DisplayWebConfig
à charger le contenu mis à jour Web.config
dans le contrôle TextBox.
Une fois que vous avez entré le code ci-dessus, testez-le en visitant la EncryptingConfigSections.aspx
page via un navigateur. Vous devez d’abord voir une page qui répertorie le contenu de Web.config
la <connectionStrings>
section affichée en texte brut (voir la figure 3).
Figure 3 : Ajouter une zone de texte et deux contrôles web bouton à la page (cliquez pour afficher l’image de taille complète)
Cliquez maintenant sur le bouton Chiffrer les chaînes de connexion. Si la validation de la demande est activée, le balisage publié à partir de TextBox WebConfigContents
génère un HttpRequestValidationException
message qui affiche le message, une valeur potentiellement dangereuse Request.Form
a été détectée à partir du client. La validation de la demande, activée par défaut dans ASP.NET 2.0, interdit les postbacks qui incluent du code HTML non codé et est conçu pour empêcher les attaques par injection de script. Cette vérification peut être désactivée au niveau de la page ou de l’application. Pour le désactiver pour cette page, définissez le ValidateRequest
paramètre false
sur la @Page
directive. La @Page
directive se trouve en haut du balisage déclaratif de la page.
<%@ Page ValidateRequest="False" ... %>
Pour plus d’informations sur la validation des demandes, son objectif, la désactivation de celle-ci au niveau de la page et de l’application, ainsi que sur la façon d’encoder le balisage HTML, consultez Validation de la demande - Prévention des attaques de script.
Après avoir désactivé la validation de la demande pour la page, réessayez de cliquer sur le bouton Chiffrer les chaînes de connexion. Lors de la publication, le fichier de configuration est accessible et sa <connectionStrings>
section chiffrée à l’aide du fournisseur DPAPI. La zone de texte est ensuite mise à jour pour afficher le nouveau Web.config
contenu. Comme le montre la figure 4, les <connectionStrings>
informations sont désormais chiffrées.
Figure 4 : Cliquer sur le bouton Chiffrer les chaînes de connexion chiffre la <connectionString>
section (Cliquez pour afficher l’image de taille complète)
La section chiffrée <connectionStrings>
générée sur mon ordinateur suit, bien que certains contenus de l’élément <CipherData>
aient été supprimés pour concision :
<connectionStrings
configProtectionProvider="DataProtectionConfigurationProvider">
<EncryptedData>
<CipherData>
<CipherValue>AQAAANCMnd8BFdERjHoAwE/...zChw==</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
Remarque
L’élément <connectionStrings>
spécifie le fournisseur utilisé pour effectuer le chiffrement (DataProtectionConfigurationProvider
). Ces informations sont utilisées par la UnprotectSection
méthode lorsque le bouton Déchiffrer les chaînes de connexion est cliqué.
Lorsque les informations chaîne de connexion sont accessibles à partir Web.config
du code que nous écrivons, à partir d’un contrôle SqlDataSource ou du code généré automatiquement à partir de TableAdapters dans nos DataSets typés, il est automatiquement déchiffré. En bref, nous n’avons pas besoin d’ajouter de code ou de logique supplémentaire pour déchiffrer la section chiffrée <connectionString>
. Pour illustrer cela, visitez l’un des didacticiels précédents à ce stade, tels que le didacticiel Simple Display de la section Création de rapports de base (~/BasicReporting/SimpleDisplay.aspx
). Comme le montre la figure 5, le didacticiel fonctionne exactement comme prévu, indiquant que les informations chiffrées chaîne de connexion sont automatiquement déchiffrées par la page ASP.NET.
Figure 5 : La couche d’accès aux données déchiffre automatiquement les informations de chaîne de connexion (cliquez pour afficher l’image de taille complète)
Pour rétablir la représentation en texte brut de la <connectionStrings>
section, cliquez sur le bouton Déchiffrer les chaînes de connexion. Dans le postback, vous devriez voir les chaîne de connexion dans Web.config
le texte brut. À ce stade, votre écran doit ressembler à celui-ci lors de la première visite de cette page (voir la figure 3).
Étape 3 : Chiffrement des sections de configuration à l’aide de aspnet_regiis.exe
Le .NET Framework inclut un large éventail d’outils en ligne de commande dans le $WINDOWS$\Microsoft.NET\Framework\version\
dossier. Dans le didacticiel Utilisation des dépendances du cache SQL, par exemple, nous avons examiné l’utilisation de l’outil aspnet_regsql.exe
en ligne de commande pour ajouter l’infrastructure nécessaire pour les dépendances de cache SQL. Un autre outil de ligne de commande utile dans ce dossier est l’outil d’inscription IIS ASP.NET (aspnet_regiis.exe
). Comme son nom l’indique, l’outil d’inscription IIS ASP.NET est principalement utilisé pour inscrire une application ASP.NET 2.0 auprès du serveur Web professionnel microsoft, IIS. En plus de ses fonctionnalités liées à IIS, l’outil d’inscription IIS ASP.NET peut également être utilisé pour chiffrer ou déchiffrer les sections de configuration spécifiées dans Web.config
.
L’instruction suivante montre la syntaxe générale utilisée pour chiffrer une section de configuration avec l’outil en aspnet_regiis.exe
ligne de commande :
aspnet_regiis.exe -pef section physical_directory -prov provider
section est la section de configuration à chiffrer (comme connectionStrings), l’physical_directory est le chemin d’accès physique complet au répertoire racine de l’application web et le fournisseur est le nom du fournisseur de configuration protégé à utiliser (par exemple, DataProtectionConfigurationProvider). Sinon, si l’application web est inscrite dans IIS, vous pouvez entrer le chemin d’accès virtuel au lieu du chemin physique à l’aide de la syntaxe suivante :
aspnet_regiis.exe -pe section -app virtual_directory -prov provider
L’exemple suivant aspnet_regiis.exe
chiffre la <connectionStrings>
section à l’aide du fournisseur DPAPI avec une clé au niveau de l’ordinateur :
aspnet_regiis.exe -pef
"connectionStrings" "C:\Websites\ASPNET_Data_Tutorial_73_CS"
-prov "DataProtectionConfigurationProvider"
De même, l’outil aspnet_regiis.exe
en ligne de commande peut être utilisé pour déchiffrer les sections de configuration. Au lieu d’utiliser le -pef
commutateur, utilisez -pdf
(ou au lieu de -pe
, utilisez -pd
). Notez également que le nom du fournisseur n’est pas nécessaire lors du déchiffrement.
aspnet_regiis.exe -pdf section physical_directory
-- or --
aspnet_regiis.exe -pd section -app virtual_directory
Remarque
Étant donné que nous utilisons le fournisseur DPAPI, qui utilise des clés spécifiques à l’ordinateur, vous devez exécuter aspnet_regiis.exe
à partir de la même machine à partir de laquelle les pages web sont traitées. Par exemple, si vous exécutez ce programme de ligne de commande à partir de votre ordinateur de développement local, puis chargez le fichier Web.config chiffré sur le serveur de production, le serveur de production ne pourra pas déchiffrer les informations chaîne de connexion, car elle a été chiffrée à l’aide de clés spécifiques à votre ordinateur de développement. Le fournisseur RSA n’a pas cette limitation, car il est possible d’exporter les clés RSA sur un autre ordinateur.
Présentation des options d’authentification de base de données
Avant que toute application puisse émettreSELECT
, INSERT
ou DELETE
UPDATE
interroger une base de données Microsoft SQL Server, la base de données doit d’abord identifier le demandeur. Ce processus est appelé authentification et SQL Server fournit deux méthodes d’authentification :
- Authentification Windows : processus sous lequel l’application s’exécute est utilisé pour communiquer avec la base de données. Lors de l’exécution d’une application ASP.NET via visual Studio 2005 s ASP.NET Development Server, l’application ASP.NET suppose l’identité de l’utilisateur actuellement connecté. Pour ASP.NET applications sur Microsoft Internet Information Server (IIS), ASP.NET applications supposent généralement l’identité ou
domainName``\MachineName
domainName``\NETWORK SERVICE
, bien que cela puisse être personnalisé. - Authentification SQL : les valeurs d’ID d’utilisateur et de mot de passe sont fournies en tant qu’informations d’identification pour l’authentification. Avec l’authentification SQL, l’ID d’utilisateur et le mot de passe sont fournis dans le chaîne de connexion.
Authentification Windows est préférable à l’authentification SQL, car elle est plus sécurisée. Avec Authentification Windows l’chaîne de connexion est libre d’un nom d’utilisateur et d’un mot de passe et si le serveur web et le serveur de base de données résident sur deux ordinateurs différents, les informations d’identification ne sont pas envoyées sur le réseau en texte brut. Toutefois, avec l’authentification SQL, les informations d’identification d’authentification sont codées en dur dans le chaîne de connexion et transmises du serveur web au serveur de base de données en texte brut.
Ces didacticiels ont utilisé Authentification Windows. Vous pouvez indiquer quel mode d’authentification est utilisé en inspectant le chaîne de connexion. Les chaîne de connexion de Web.config
nos didacticiels ont été les suivantes :
Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\NORTHWND.MDF; Integrated Security=True; User Instance=True
La sécurité intégrée =True et le manque de nom d’utilisateur et de mot de passe indiquent que Authentification Windows est utilisé. Dans certains chaîne de connexion le terme « Connexion approuvée = Oui ou Sécurité intégrée = SSPI » est utilisé au lieu d’Integrated Security=True, mais les trois indiquent l’utilisation de Authentification Windows.
L’exemple suivant montre un chaîne de connexion qui utilise l’authentification SQL. $CREDENTIAL_PLACEHOLDER$
est un espace réservé pour la paire clé-valeur de mot de passe. Notez que les informations d’identification sont incorporées dans le chaîne de connexion :
Server=serverName; Database=Northwind; uid=userID; $CREDENTIAL_PLACEHOLDER$
Imaginez qu’un attaquant est en mesure d’afficher le fichier de Web.config
votre application. Si vous utilisez l’authentification SQL pour vous connecter à une base de données accessible via Internet, l’attaquant peut utiliser cette chaîne de connexion pour vous connecter à votre base de données via SQL Management Studio ou à partir de ASP.NET pages sur leur propre site web. Pour atténuer cette menace, chiffrez les informations de chaîne de connexion à Web.config
l’aide du système de configuration protégé.
Remarque
Pour plus d’informations sur les différents types d’authentification disponibles dans SQL Server, consultez Building Secure ASP.NET Applications : Authentification, Autorisation et Communication sécurisée. Pour obtenir d’autres exemples chaîne de connexion illustrant les différences entre la syntaxe d’authentification Windows et SQL, reportez-vous à ConnectionStrings.com.
Résumé
Par défaut, les fichiers avec une .config
extension dans une application ASP.NET ne sont pas accessibles via un navigateur. Ces types de fichiers ne sont pas retournés, car ils peuvent contenir des informations sensibles, telles que des chaîne de connexion de base de données, des noms d’utilisateur et des mots de passe, etc. Le système de configuration protégé dans .NET 2.0 permet de protéger davantage les informations sensibles en autorisant le chiffrement des sections de configuration spécifiées. Il existe deux fournisseurs de configuration protégés intégrés : un qui utilise l’algorithme RSA et l’autre qui utilise l’API de protection des données Windows (DPAPI).
Dans ce tutoriel, nous avons examiné comment chiffrer et déchiffrer les paramètres de configuration à l’aide du fournisseur DPAPI. Cette opération peut être effectuée par programmation, comme nous l’avons vu à l’étape 2, ainsi que via l’outil en ligne de commande, qui a été abordé à l’étape aspnet_regiis.exe
3. Pour plus d’informations sur l’utilisation de clés de niveau utilisateur ou sur l’utilisation du fournisseur RSA à la place, consultez les ressources de la section Autres lectures.
Bonne programmation !
Pour aller plus loin
Pour plus d’informations sur les sujets abordés dans ce tutoriel, consultez les ressources suivantes :
- Création d’une application ASP.NET sécurisée : authentification, autorisation et communication sécurisée
- Chiffrement des informations de configuration dans ASP.NET applications 2.0
- Chiffrement des
Web.config
valeurs dans ASP.NET 2.0 - Guide pratique pour chiffrer des sections de configuration dans ASP.NET 2.0 à l’aide de DPAPI
- Comment : chiffrer des sections de configuration dans ASP.NET 2.0 à l'aide de RSA (page pouvant être en anglais)
- API de configuration dans .NET 2.0
- Protection des données Windows
À propos de l’auteur
Scott Mitchell, auteur de sept livres ASP/ASP.NET et fondateur de 4GuysFromRolla.com, travaille avec les technologies Web Microsoft depuis 1998. Scott travaille en tant que consultant indépendant, formateur et écrivain. Son dernier livre est Sams Teach Yourself ASP.NET 2.0 en 24 heures. Il peut être accessible à mitchell@4GuysFromRolla.com. ou via son blog, qui peut être trouvé à http://ScottOnWriting.NET.
Merci spécial à
Cette série de tutoriels a été examinée par de nombreux réviseurs utiles. Les réviseurs principaux de ce tutoriel étaient Teresa Murphy et Randy Schmidt. Vous souhaitez consulter mes prochains articles MSDN ? Si c’est le cas, déposez-moi une ligne à mitchell@4GuysFromRolla.com.