ASP.NET 2.0 et la sécurité Nicolas CLERC 3/26/2017 3:56 PM ASP.NET 2.0 et la sécurité Nicolas CLERC Consultant Associé nclerc@tekigo.com © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Nicolas CLERC Consultant Associé nclerc@tekigo.com www.tekigo.com 3/26/2017 3:56 PM Nicolas CLERC Consultant Associé nclerc@tekigo.com Tekigo 73 chemin des Essarts 69126 Brindas www.tekigo.com +33 (0)6 74 60 87 72 contact@tekigo.com Télécharger les codes sources des démos sur notre site Web © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Agenda Gestion des utilisateurs Sécuriser son application Web L’authentification des utilisateurs Memberships & Roles Les nouveaux contrôles web associés Sécuriser son application Web Techniques avancées Le suivi de fonctionnement
Agenda Gestion des utilisateurs Sécuriser son application Web L’authentification des utilisateurs Memberships & Roles Les nouveaux contrôles web associés Sécuriser son application Web Techniques avancées Le suivi de fonctionnement
Authentification & Autorisation Reconnaissance de l’utilisateur Sécurisation de l’accès aux éléments d’une application Par utilisateurs Par rôles Support de plusieurs modes d’authentification Formulaire (webform) Windows Passport API standard Les applications sont indépendantes du mode d’authentification Configuré dans le fichier Web.config Compatibilité ascendante avec .NET 1.1
Authentification La classe FormsAuthentication Accès aux informations du web.config RedirectFromLoginPage() SignOut() …()
Authentification Les nouveautés d’ASP.NET 2.0 : cookieLess (sans les pépites de chocolat) UseCookie : toujours AutoDetect : cookie si supporté UseDeviceProfile : cookie si supporté mais pas de vérification (utilisation de l’identité du navigateur) UseUri : jamais defaultUrl : default.aspx domain : domaine de validité du cookie Utilisateur anonyme application Web d’administration de la sécurité …
La sécurité avec ASP.NET 1.1 Affichage API de programmation Fonctionnalité Sécurité d’accès aux pages Stockage
La sécurité avec ASP.NET 2.0 Affichage API de programmation Fonctionnalité Sécurité d’accès aux pages Stockage
Démonstration Mise en œuvre de l’authentification 3/26/2017 3:56 PM © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Le p’tit truc Attention au nom du cookie si plusieurs applications sécurisées hébergées sur le même serveur risque de télescopage/écrasement Ne protège que les éléments gérés par l’extension ISAPI ASP.NET de IIS .aspx, .asmx, .ashx, … mais pas : .html , .asp
Membership Gestion des listes d’utilisateurs Indépendant du stockage Simplification de l’accès et de la manipulation des informations utilisateurs Vérification d’identité Gestion/modification des mots de passe Création/modification/suppression d’utilisateur Recherche Péremption de la connexion System.Web.Security.Membership
Rôles Cœur de l’API déjà présent dans .NET 1.1 mais pas l’enrobage … pas mal de ligne de code à écrire. User.IsInRole() Dans ASP.NET 2.0 Chargement et persistance automatique des rôles affecté à l’utilisateur Indépendant du stockage (Provider) Fonctions de modification/consultation des rôles et des utilisateurs associés
La sécurité avec ASP.NET 2.0 application web d’administration Affichage API de programmation Fonctionnalité Membership Sécurité d’accès aux pages Roles Provider Stockage
Démonstration Membership et rôles 3/26/2017 3:56 PM © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
3/26/2017 3:56 PM Les contrôles Web Un ensemble de contrôles web prêt à intégrer dans vos pages Login, Création d’un utilisateur, Modification/Récupération du mot de passe Affichage des informations d’authentification Paramétrable & personnalisable © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
La sécurité avec ASP.NET 2.0 Site web d’administration Contrôle web de gestion de la sécurité Affichage login Changement mot de passe Création user Affichage API de programmation Fonctionnalité Membership Sécurité d’accès aux pages Roles Provider Stockage
Les nouveaux contrôles 3/26/2017 3:56 PM Démonstration Les nouveaux contrôles © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Agenda Gestion des utilisateurs Sécuriser son application Web L’authentification des utilisateurs Memberships & Roles Les nouveaux contrôles web associés Sécuriser son application Web Techniques avancées Le suivi de fonctionnement
Saisie des données Injection de code SQL toujours utiliser des requêtes paramétrées SQL Server : paramètre nommé : @nomDuParametre Access : paramètre par position : ?
L’injection de code SQL 3/26/2017 3:56 PM L’injection de code SQL Code source “SELECT COUNT (*) FROM Users WHERE UserName=‘”+param1+”’ AND Password=‘”+param2+”’” Une requête normale SELECT COUNT (*) FROM Users WHERE UserName=‘Jeff’ AND Password=‘imbatman’ SELECT COUNT (*) FROM Users WHERE UserName=‘’ or 1=1-- AND Password=‘’ Une requête frauduleuse "or 1=1" toujours vrai "--" Commentaire © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Toujours valider les données de l’utilisateur Saisie des données Injection de code HTML / Javascript Cross Site Scripting Ne pas autoriser la saisie de code HTML Toujours valider les données de l’utilisateur
Validation de la saisie Toujours valider les informations de l’utilisateur : Facultativement au niveau du navigateur ergonomie, optimisation Impérativement au niveau serveur sécurité Bibliothèque de contrôle de validation Puissante : expression régulière, … Sécurisé : optionnellement client MAIS impérativement serveur Extensible Groupe de validation permet de définir des contrôles optionnels (non bloquant)
Démonstration Validation de saisie 3/26/2017 3:56 PM © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Agenda Gestion des utilisateurs Sécuriser son application Web L’authentification des utilisateurs Memberships & Roles Les nouveaux contrôles web associés Sécuriser son application Web Techniques avancées Le suivi de fonctionnement
« Pour vivre heureux, vivons cachés. » Filtrage des données « Pour vivre heureux, vivons cachés. » Utilisation des HTTPModule Limiter les informations renvoyées au navigateur Filtrer les informations envoyées par le navigateur ‘obfusquer’ le code renvoyé au navigateur timestamp HTTPHandler : nouvelle extension à gérer
Chaine d’appel ASP.NET Serveur WEB IIS ASP DevServer HTTP Handler vscache.axd HTTP Handler trace.axd ASP.NET RUNTIME HTTP Handler .ASPX HTTP Module HTTP Module HTTP Module Page.ASPX
Démonstration HTTP Module 3/26/2017 3:56 PM © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Agenda Gestion des utilisateurs Sécuriser son application Web L’authentification des utilisateurs Memberships & Roles Les nouveaux contrôles web associés Sécuriser son application Web Techniques avancées Le suivi de fonctionnement
Le Monitoring Utilisation des compteurs de performances associés aux applications web Créer des compteurs de performances « applicatif » La « Health Monitoring API » Surveillance Remontée automatique de problèmes potentiels Config par défaut dans le machine.config Intégrations aux outils de monitoring Microsoft Operation Manager (MOM) Windows Management Instrumentation
Démonstration Monitoring 3/26/2017 3:56 PM © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Microsoft France 18, avenue du Québec 91 957 Courtaboeuf Cedex 3/26/2017 3:56 PM Microsoft France 18, avenue du Québec 91 957 Courtaboeuf Cedex www.microsoft.com/france 0 825 827 829 msfrance@microsoft.com © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.