Section courante

A propos

Section administrative du site

Sécurisation des pages du journal des erreurs

Vous pouvez sécuriser l'affichage ou les flux d'ELMAH de deux manières :

Ces deux points sont abordés dans les sous-sections suivante.

Activation ou désactivation de l'accès à distance

ELMAH propose une section de configuration et un paramètre permettant d'activer ou de désactiver l'accès à distance à l'affichage du journal des erreurs et aux flux. Lorsque cette option est désactivée (par défaut), seul l'accès local à l'affichage du journal des erreurs et aux flux est autorisé. L'extrait ci-dessous explique comment activer l'accès à distance :

<elmah>  
    <security allowRemoteAccess="1" />  
</elmah>  

L'accès à distance est activé lorsque la valeur de l'attribut allowRemoteAccess est 1, yes, true ou on. Sinon, il est désactivé. L'accès local est toujours disponible.

Déclarer les sections de configuration attendues

Assurez-vous d'avoir déclaré les sections de configuration attendues afin d'appliquer la configuration ci-dessus.

Autorisation ou refus d'accès via l'autorisation ASP.NET

Si vous devez activer l'accès à distance, il est primordial de le sécuriser uniquement pour les utilisateurs autorisés. Vous pouvez le faire grâce au mécanisme d'autorisation intégré d'ASP.NET.

Différents emplacements d'un site web peuvent être sécurisés avec différentes règles d'autorisation. Supposons que votre application Web soit déployée à l'adresse http://www.example.com/ et qu'ELMAH soit configuré pour répondre à elmah.axd. Vous pouvez sécuriser http://www.example.com/elmah.axd contre les utilisateurs non autorisés en ajoutant un élément d'emplacement à votre configuration comme suit :

<location path="elmah.axd">  
    <system.web>
        <httpHandlers>
            <add verb="POST,GET,HEAD" 
                 path="elmah.axd" 
                 type="Elmah.ErrorLogPageFactory, Elmah" />
        </httpHandlers>
        <authorization>
            <deny users="*" />  
        </authorization>  
    </system.web>
    <system.webServer>
        <handlers>
            <add name="ELMAH" 
                 verb="POST,GET,HEAD"
                 path="elmah.axd" 
                 type="Elmah.ErrorLogPageFactory, Elmah"
                 preCondition="integratedMode" />
        </handlers>
    </system.webServer>
</location>  

Il y a trois points importants à noter ici :

L'exemple de configuration ci-dessus refuse l'accès à tous les utilisateurs, mais c'est un bon point de départ. Vous souhaiterez probablement ajouter des règles n'autorisant l'accès qu'à des utilisateurs et/ou des rôles spécifiques. Par exemple, vous pourriez avoir un rôle pour les administrateurs et les développeurs, appelé respectivement admin et dev. Pour autoriser les utilisateurs membres de l'un ou l'autre rôle, vous pouvez configurer la section d'autorisation ci-dessus comme suit :

<authorization>  
    <allow roles="admin" />  
    <allow roles="dev" />  
    <deny users="*" />  
</authorization>       


Dernière mise à jour : Mercredi, le 23 novembre 2022