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 fourni à un visiteur du site Web, mais un administrateur ou un pirate informatique 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 des informations sensibles en chiffrant les sections du fichier Web.config.
Introduction
Les informations de configuration des applications ASP.NET sont généralement stockées dans un fichier XML nommé Web.config
. Au cours de ces tutoriels, nous avons mis à jour les Web.config
quelques 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é automatiquement ajoutées à Web.config
dans la <connectionStrings>
section . Plus tard, dans le didacticiel Pages maîtres et navigation de 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.
Étant donné Web.config
que peut contenir des données sensibles telles que des chaînes de connexion, il est important que le contenu de Web.config
soit conservé en sécurité et masqué aux 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 de ASP.NET, qui retourne le message Ce type de page n’est pas servi comme illustré 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 la barre d’adresse de leur navigateur.
Figure 1 : La visite Web.config
via un navigateur renvoie un message Ce type de page n’est pas servi (cliquez pour afficher l’image en taille réelle)
Mais que se passe-t-il si une personne malveillante est en mesure de trouver un autre exploit qui lui permet d’afficher le contenu de votre Web.config
fichier ? Que peut faire un attaquant avec ces informations et quelles mesures peuvent être prises pour mieux protéger les informations sensibles dans Web.config
? Heureusement, la plupart des sections de Web.config
ne contiennent pas d’informations sensibles. Quel dommage un attaquant peut-il perpétrer s’il connaît le nom du thème par défaut utilisé par vos pages de ASP.NET ?
Toutefois, certaines Web.config
sections contiennent des informations sensibles qui peuvent inclure des chaînes 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, le .NET Framework version 2.0 inclut un système de configurations protégées qui facilite le chiffrement et le déchiffrement par programmation des sections de configuration sélectionnées.
Notes
Ce tutoriel se termine par un aperçu des recommandations de Microsoft pour la connexion à une base de données à partir d’une application ASP.NET. En plus de chiffrer vos chaînes 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ée de ASP.NET 2.0 s
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 brancher à 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 utilisent 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 Web.config
des 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 Lectures supplémentaires à la fin de ce tutoriel.
Notes
Les RSAProtectedConfigurationProvider
fournisseurs et DPAPIProtectedConfigurationProvider
sont inscrits dans le machine.config
fichier avec les noms RsaProtectedConfigurationProvider
de fournisseurs 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 : Chiffrement et déchiffrement par programmation des sections de configuration
Avec quelques lignes de code, nous pouvons chiffrer ou déchiffrer une section de configuration particulière à l’aide d’un fournisseur spécifié. Comme nous le verrons bientôt, le code doit simplement référencer par programmation la section de configuration appropriée, appeler sa ProtectSection
méthode ou UnprotectSection
, puis appeler la Save
méthode pour conserver les modifications. En outre, le .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 programmatique des informations de configuration, créons une page ASP.NET qui inclut des boutons pour le chiffrement et le déchiffrement de 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 Designer, affectez à sa ID
propriété la valeur MultiLine
, TextMode
et ses Width
propriétés et à Rows
95 % et 15, respectivement.WebConfigContents
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 textBox, ajoutez deux contrôles Button nommés EncryptConnStrings
et DecryptConnStrings
. Définissez leurs propriétés Text sur 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 un contrôle Web TextBox et deux boutons à la page (cliquer pour afficher l’image en taille réelle)
Ensuite, nous devons écrire du code qui charge et affiche le contenu de dans la WebConfigContents
zone de texte lors du premier chargement de Web.config
la page. 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 Page.IsPostBack
est 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 de l’application Web.config
, la StreamReader
classe pour lire son contenu dans une chaîne et la Path
classe pour générer le chemin physique du Web.config
fichier. Ces trois classes se trouvent toutes dans l’espace deSystem.IO
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 de classe avec System.IO.
.
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 <connectionStrings>
d’une clé au niveau de l’ordinateur avec le fournisseur DPAPI. À partir du Designer, 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 tous deux par obtenir des informations sur le fichier de l’application Web.config
actuelle via la WebConfigurationManager
méthode class sOpenWebConfiguration
. 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 class sGetSection(sectionName)
, 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é. En outre, la section peut être chiffrée ou déchiffrée via les méthodes et UnprotectSection
les SectionInformation
ProtectSection(provider)
propriétés.
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 s, nous passons 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 ProtectSection(provider)
méthode ou UnprotectSection
, vous devez appeler la méthode de l’objet Save
Configuration
pour conserver les modifications. Une fois les informations de configuration chiffrées ou déchiffrées et les modifications enregistrées, nous appelons DisplayWebConfig
pour 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 initialement voir une page qui répertorie le contenu de Web.config
avec la <connectionStrings>
section affichée en texte brut (voir la figure 3).
Figure 3 : Ajouter un contrôle Web TextBox et Deux boutons à la page (cliquer pour afficher l’image en taille réelle)
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 WebConfigContents
TextBox génère un HttpRequestValidationException
, qui affiche le message : Une valeur potentiellement dangereuse Request.Form
a été détectée à partir du client. La validation des demandes, qui est activée par défaut dans ASP.NET 2.0, interdit les publications qui incluent du code HTML non codé et est conçue pour empêcher les attaques par injection de script. Cette case activée peut être désactivée au niveau de la page ou de l’application. Pour le désactiver pour cette page, définissez le paramètre false
sur ValidateRequest
dans 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 façon de la désactiver au niveau de la page et de l’application, ainsi que sur l’encodage HTML du balisage, consultez Validation de la demande - Prévention des attaques de script.
Après avoir désactivé la validation des demandes pour la page, essayez de cliquer à nouveau 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 en taille réelle)
La section chiffrée <connectionStrings>
générée sur mon ordinateur suit, bien qu’une partie du contenu de l’élément <CipherData>
ait été supprimée par souci de concision :
<connectionStrings
configProtectionProvider="DataProtectionConfigurationProvider">
<EncryptedData>
<CipherData>
<CipherValue>AQAAANCMnd8BFdERjHoAwE/...zChw==</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
Notes
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 vous cliquez sur le bouton Déchiffrer les chaînes de connexion.
Lorsque l’chaîne de connexion informations est accessible à partir du Web.config
code que nous écrivons, d’un contrôle SqlDataSource ou du code généré automatiquement à partir des TableAdapters de nos DataSets typés, elles sont automatiquement déchiffrées. 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, consultez l’un des didacticiels précédents à l’heure actuelle, comme le tutoriel Affichage simple de la section Rapports de base (~/BasicReporting/SimpleDisplay.aspx
). Comme le montre la figure 5, le tutoriel 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 (cliquer pour afficher l’image en taille réelle)
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 la publication, vous devez voir les chaînes de connexion dans Web.config
en texte brut. À ce stade, votre écran doit ressembler à celui-ci lors de la première visite de cette page (voir figure 3).
Étape 3 : Chiffrement des sections de configuration à l’aide de aspnet_regiis.exe
Le .NET Framework inclut divers outils en ligne de commande dans le $WINDOWS$\Microsoft.NET\Framework\version\
dossier. Dans le didacticiel Utilisation des dépendances du cache SQL, pour instance, 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 du cache SQL. Un autre outil en 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 d’UN serveur Web de niveau professionnel de Microsoft, IIS. En plus de ses fonctionnalités 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 aspnet_regiis.exe
en ligne de commande :
aspnet_regiis.exe -pef section physical_directory -prov provider
section est la section de configuration à chiffrer (comme connectionStrings), le physical_directory est le chemin physique complet du répertoire racine de l’application web et le fournisseur est le nom du fournisseur de configuration protégé à utiliser (par exemple, DataProtectionConfigurationProvider). Si l’application web est inscrite dans IIS, vous pouvez également 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 section à l’aide <connectionStrings>
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
Notes
É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 que vous chargez le fichier Web.config chiffré sur le serveur de production, le serveur de production ne sera pas en mesure de déchiffrer les informations chaîne de connexion, car elles ont été chiffrées à 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 vers un autre ordinateur.
Présentation des options d’authentification de base de données
Avant qu’une application puisse émettre SELECT
des requêtes , INSERT
, UPDATE
ou DELETE
sur 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 : le 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é de
domainName``\MachineName
oudomainName``\NETWORK SERVICE
, bien que cela puisse être personnalisé. - Authentification SQL : un ID utilisateur et des valeurs de mot de passe sont fournis en tant qu’informations d’identification pour l’authentification. Avec l’authentification SQL, l’ID 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 le 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. Avec l’authentification SQL, toutefois, les informations d’identification d’authentification sont codées en dur dans le chaîne de connexion et sont transmises du serveur web au serveur de base de données en texte brut.
Ces tutoriels ont utilisé Authentification Windows. Vous pouvez déterminer quel mode d’authentification est utilisé en inspectant les chaîne de connexion. Les chaîne de connexion de Web.config
nos tutoriels ont été les suivants :
Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\NORTHWND.MDF; Integrated Security=True; User Instance=True
La valeur Integrated Security=True et l’absence de nom d’utilisateur et de mot de passe indiquent que Authentification Windows est utilisé. Dans certaines chaînes de connexion, le terme Trusted Connection=Yes ou Integrated Security=SSPI est utilisé au lieu de 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 se connecter à votre base de données via SQL Management Studio ou à partir de ASP.NET pages de son propre site web. Pour atténuer cette menace, chiffrez les informations chaîne de connexion à Web.config
l’aide du système de configuration protégé.
Notes
Pour plus d’informations sur les différents types d’authentification disponibles dans SQL Server, consultez Création d’applications ASP.NET sécurisées : 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înes 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 mieux protéger 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 : l’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. Cela peut être effectué à la fois par programmation, comme nous l’avons vu à l’étape 2, ainsi que par le biais de l’outil aspnet_regiis.exe
en ligne de commande, qui a été abordé à l’étape 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 Lecture supplémentaire.
Bonne programmation !
En savoir plus
Pour plus d’informations sur les sujets abordés dans ce tutoriel, reportez-vous aux 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 les applications ASP.NET 2.0
- Chiffrement des
Web.config
valeurs dans ASP.NET 2.0 - Guide pratique pour chiffrer les 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 comme consultant indépendant, formateur et écrivain. Son dernier livre est Sams Teach Yourself ASP.NET 2.0 in 24 Heures. Il est accessible à l’adressemitchell@4GuysFromRolla.com . ou via son blog, qui peut être trouvé à l’adresse http://ScottOnWriting.NET.
Un merci spécial à
Cette série de tutoriels a été examinée par de nombreux réviseurs utiles. Les principaux réviseurs 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.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour