Accueil
Articles
Astuces
Actualités
Auteurs
A propos
Contact
S'enregistrer
|
S'identifier
S'identifier
Authentification invalide
N
om d'utilisateur
M
ot de Passe
S
e souvenir de moi la prochaine fois.
S'identifier
Annuler
S'enregistrer
Mot de passe oublié ?
Attention au mode debug="true" en production !
D'où l'importance de placer debug="false" du web.config avant de déployer une application ASP.NET
Par
Laurent Duveau
publié le 20/10/2006 à 19:55, lu 16263 fois,
0 commentaire(s)
Tags:
ASP.NET 2
,
Visual Studio 2005
Vous connaissez tous l'utilité de l'élément
<compilation debug="true" />
du
web.config
et la nécessité de le passer à
false
à l'issue du déploiement de vos applications ASP.NET. Pourtant, on peut facilement l'oublier ou pire, ne pas s'en soucier. Et bien voici pourquoi vous n'oublierez plus de placer debug à false pour une application en production; le simple fait de laisser
debug="true"
entraine les effets suivants :
Perte de performance
: le code ne peut plus vraiment être optimisé à la compilation car il faut pouvoir l'exécuter ligne à ligne (debugage)
Timeout
: Afin de faciliter le debugage les requêtes ASP.NET ne font plus de timeout, alors que l'on veut bien sûr éviter ce comportement en production !
L'application utilise
beaucoup plus de mémoire
Les pages se
compilent moins vite
au runtime car on ne profite pas du système de compilation batch
Enfin les ressources embarquées servies par le handler WebResources.axd ne sont
pas mises en cache
dans le navigateur ; sont concernées les images, css et librairies JavaScript utilisées par la plupart des contrôles ASP.NET 2.0 (TreeView, Menu, Validateurs) mais aussi les composants tiers et les contrôles ASP.NET AJAX. Ceci afin de ne pas avoir à vider sans cesse le cache du navigateur pendant le développement.
L'astuce proposée ici est très simple à mettre en place, signalée par
Scott Guthrie
, il s'agit d'activer le switch suivant dans le
machine.config
du
serveur de production
pour s'assurer que toutes les applications ASP.NET 2.0 du serveur s'exécutent en
mode release
, quelque soit la valeur de leur élément debug.
<
configuration
>
<
system.web
>
<
deployment
retail
=
"
true
"
/>
</
system.web
>
</
configuration
>
Ceci aura pour effet de :
Désactiver la commande debug="true"
Désactiver l'affichage des traces dans les pages
Désactiver l'affichage des messages d'erreurs détaillés (pour ne pas dévoiler des informations de configuration du serveur)
Et comme le souligne son auteur, cette précieuse astuce devrait faire partie intégrante des bonnes pratiques en terme de sécurité pour un serveur d'hébergement d'applications.
»
Démarrer une discussion
Ecrire un commentaire
Titre
Commentaire
Annuler