Quelles nouveautés dans ASP.NET 1.1 et windows server 2003 ?

02/07/2002

Par neo.51 (autres articles)
 


Avant-Propos
1. Pourquoi migrer vers ASP.NET 1.1 ?
2. Installation d'ASP.NET 1.1
3. Les nouveautés au niveau de la sécurité dans ASP.NET 1.1
3.1. Les attaques par injection de scripts
3.2. Sécuriser les données des .config
3.3. Paramétrage des droits du process de votre application ASP.NET
4. ASP.NET 1.1 et windows 2003 server
Conclusion


Avant-Propos


Actuellement, beaucoup de sites faits en ASP.NET sont hébergés sous windows 2000 server avec le framework .NET 1.0. Hors, depuis quelques mois, windows 2003 server, qui contient le framework .NET dans sa version 1.1 a vu le jour. Curieux de savoir quels avantages pouvaient apporter une migration vers ASP.NET 1.1 sous windows 2003 server, j'ai donc assisté à une conférence sur ce sujet lors des tech-ed 2003 qui se déroulent à Barcelone. Pourquoi et comment migrer son site ASP.NET vers cette nouvelle plate-forme ? Voici les quelques éléments de réponse qui m'ont été fournis pendant cette conférence.


1. Pourquoi migrer vers ASP.NET 1.1 ?


  • Pour profiter des nouveaux fournisseurs d'accès aux SGBD du framework 1.1.
  • Pour pouvoir crypter les informations sensibles des .conf
  • Pour pouvoir protéger vos sites ASP.NET des attaques par injections de scripts.
  • Pour pouvoir développer des sites en ASP.NET pour pocket P.C.
  • Pour profiter des meilleures performances de IIS 6 et de windows 2003 server, notamment avec la mise en cache des pages au niveau du noyau système.
  • Pouvoir travailler sur vos pages ASP.NET avec Visual Studio.NET 2003


2. Installation d'ASP.NET 1.1


L'installation du framework 1.1 et la migration de vos pages aspx vers cette nouvelle version du framework est très facile. On peut toujours faire tourner certaines pages en ASP.NET 1.0 et d'autres en ASP.NET 1.1 côte à côte, sur un même site.

Sous windows 2000 et windows XP professionnel, vous trouverez le framework .NET 1.1 avec Visual Studio .NET 2003, avec windows update, ou bien sur le site de Microsoft. Vous pourrez installer le framework .NET 1.1 en laissant le framework .NET 1.0 et faire tourner des sites en ASP.NET 1.0 et 1.1 sur le même serveur.

Pour windows 2003 serveur, le framework .NET 1.1 est installé par défaut, vous devrez néanmoins installer IIS 6 et l'activer. IIS 6 qui est le serveur web de windows 2003 server ne supporte pas la version 1.0 du framework .NET pour vos pages aspx.

Avant d'installer le framework 1.1, vous devez savoir que :

Une fois le fichier dotnetfx.exe téléchargé, si vous l'exécutez, vous mettrez automatiquement vos sites à jour vers la nouvelle version d'ASP.NET. Pour éviter cette mise à jour automatique, exécutez :

C:\Dotnetfx.exe /c:"install /noaspupgrade

Pour mettre vos pages à la nouvelle version, une fois le framework installé, si vous n'avez pas laissé la mise à jour automatique, il vous faudra exécuter "aspnet_regiis".

Vous trouverez cet exécutable dans le répertoire d'installation du framework .NET :

  • $SYSTEMROOT\Microsoft.NET\Framework\v1.0.3705\ Pour la version 1.0 du framework .NET
  • $SYSTEMROOT\Microsoft.NET\Framework\v1.1.4322\ Pour la version 1.1 du framework .NET

Voici les quelques options les plus utilisées :

  • -r : Changer tous les sites de version.
  • -s <chemin> : Changer de version dans le chemin spécifié.
  • -lk : Lister tous les répertoires et les versions utilisées.
  • -u : Désinstaller cette version.
  • -? : Aide sur les différentes options disponibles.


3. Les nouveautés au niveau de la sécurité dans ASP.NET 1.1



3.1. Les attaques par injection de scripts


Enormément d'attaques de sites sont faites par injections de scripts (très souvent javascript) afin de récupérer les logs qu'un utilisateur a remplis dans un formulaire, ou divers paramètres à priori inaccessibles.

Afin de solutionner ce problème, en ASP.NET 1.1, IIS va détecter les scripts suspects et lever une exception s'il rencontre un script "suspect" dans une de vos pages. Par exemple toutes les balises "<script>" qui en principe ne sont pas présentes dans vos pages.

Cette vérification est activée par défaut dans ASP.NET 1.1. On peut cependant la désactiver si besoin est (si l'application insère dynamiquement des scripts dans la page).

On peut désactiver cette vérification au niveau :

  • de la page, en faisant <% Page ValidateRequest="false" %>
  • de l'ensemble de l'application, en ajoutant dans web.config <% Pages ValidateRequest="false" %>


3.2. Sécuriser les données des .config


Normalement, si votre serveur web est bien configuré, personne n'a accès aux .config à part l'administrateur du serveur. Mais, en cas de hack ou de mauvaise administration de votre serveur, les données sensibles comme la chaîne de connexion à la base de données ou les mots de passe d'identification sont écrits en clair dans le fichier.

Ces informations sensibles peuvent désormais être stockées et cryptées dans la base de registre du serveur. On passe ainsi par la protection et le cryptage des données de L'API windows.

La mise en place de cette technique étant assez complexe, je vous renvois sur cet article msdn : (mettre le liens), en éspérant vous proposer un tutoriel complet d'ici peu ;).


3.3. Paramétrage des droits du process de votre application ASP.NET


La version 1.1 d'ASP.NET permet une gestion avancée des droits du process qui exécute vos pages aspx. On peut ainsi améliorer la sécurité de ses applications de manière évidente.

Il existe plusieurs niveaux de sécurité pour les process. De "full", qui laisse tous les droits de base au process, à minimal, où le process n'a que des droits d'exécution.

La définition des droits du process qui exécute votre application se fait dans le .config. Par exemple :

<system.web>
    <trust level="full" originurl="http://www.monsite.com/*" />
</system.web>

Le process qui exécute les pages de http://www.monsite.com à ses droits à "full".

Il faut cependant faire très attention lorsqu'on applique des restrictions sur le process :

  • Pour un log des événements et l'utilisation de OLE DB, les droits du process doivent être à "full".
  • Pour les lectures/écritures sur des fichiers les droits du process devront être à "hight".
  • Pour des lectures seules sur des fichiers les droits du process doivent être à "low".
  • Pour envoyer des mails et regarder les messages d'erreurs de IIS, les droits du process doivent être à "medium".

Pour plus de détails, consultez la documentation msdn.


4. ASP.NET 1.1 et windows 2003 server


La caractéristique la plus intéressante de windows 2003 server est la mise en cache des pages aspx au niveau du noyau de windows 2003 server. Cette mise en cache de vos pages aspx est possible si :

  • Vous spécifiez la durée de la mise en cache.
  • La page ne nécessite pas d'authentification.

Avec la petite démonstration que nous a proposée le speaker on a observé un gain de performances allant jusqu'à 30% avec cette mise en cache.


Conclusion


Avec windows 2003 sever et ASP.NET, on voit que Microsoft met l'accent sur la sécurité. En effet, cette nouvelle version d'ASP.NET semble surtout apporter de nouvelles options au niveau de la sécurité. Cette première conférence des tech-ed fut ma fois fort intéressante. L'autre point important de cette nouvelle version d'ASP.NET est la possibilité de développement de site sur pocket P.C., malheureusement ce point fut très peu abordé dans cette conférence. Je compte assister à de nouvelles sessions sur ASP.NET, et notamment sur les pocket PC, ce qui donnera lieu à un article dans les prochains jours.



Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur.
La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.