Méthodes conseillées pour Excel Services
Dernière modification : mercredi 14 avril 2010
S’applique à : SharePoint Server 2010
Dans cet article
Atténuation des menaces
Excel Services, fonctions définies par l'utilisateur (UDF)
Général
Cette rubrique contient une liste de méthodes conseillées pour travailler avec Excel Services.
Atténuation des menaces
Accès anonyme et la divulgation d'informations
La combinaison de paramètres suivants accorde aux utilisateurs anonymes l’accès à tous les fichiers dans le partage auxquels le compte de processus a accès. Elle n’est par conséquent pas recommandée, en raison de la possibilité de divulgation d’informations :
L’accès anonyme à Microsoft SharePoint Foundation est activé.
Vous avez un emplacement UNC approuvé et le compte du processus est activé.
Notes
Le compte de processus est un paramètre Excel Services global qui affecte tous les emplacements approuvés.
Pour afficher l’option Compte de processus
Dans le menu Démarrer, cliquez sur Tous les programmes.
Pointez sur Produits Microsoft SharePoint 2010, puis cliquez sur Administration centrale de SharePoint.
Sous Gestion des applications, cliquez sur Gérer les applications de service.
Dans la page Gérer les applications de service, cliquez sur Application Excel Services.
Dans la page Application Excel Services, cliquez sur Paramètres globaux.
Dans la section Sécurité, recherchez l’option Compte de processus sous Méthode d’accès aux fichiers.
Attaque par déni de service
Dans une attaque par déni de service contre un service Web, un attaquant adresse de très volumineuses demandes individuelles au service Web. L'objectif consiste à essayer d'atteindre les limites d'une ou de plusieurs valeurs d'entrée de service Web.
Il est conseillé d’utiliser le paramètre des services Internet (IIS, Microsoft Internet Information Services) pour définir la taille de demande maximale pour le service Web.
Utilisez l’attribut maxRequestLength dans l’élément httpRuntime dans l’élément system.web pour empêcher les attaques par déni de service provoquées par des utilisateurs publiant des fichiers volumineux sur le serveur. La taille par défaut est 4 096 Ko (4 Mo).
Pour plus d’informations, voir <httpRuntime> Element et <maxRequestLength> Element.
Interception entre l’application appelante et l’ordinateur du service Web
Si l'application appelante et Excel Web Services sont déployés sur différents ordinateurs, un attaquant peut écouter le trafic réseau pour détecter un transfert de données entre l'application appelante et le service Web. Cette menace est également appelée « interception » ou « écoute clandestine »
Pour atténuer cette menace, les mesures suivantes sont recommandées :
Utiliser le protocole SSL (Secure Sockets Layer) pour configurer un canal sécurisé afin de protéger le transfert des données entre le client et le serveur. Le protocole SSL contribue à protéger les données contre l’interception de paquets par quiconque dispose d’un accès physique au réseau.
Protéger physiquement le réseau concerné si une application personnalisée utilisant Excel Web Services s’exécute dans un réseau confiné, par exemple si Excel Web Services est déployé sur un ordinateur Web frontal dans l’entreprise.
Pour plus d’informations, voir Securing Your Network et Sécurité SOAP (éventuellement en anglais).
Pour plus d’informations sur la topologie, l’évolutivité, les performances et la sécurité d’Excel Services, voir le TechCenter Microsoft SharePoint Server 2010.
Usurpation d'identité
Il est recommandé d’utiliser le protocole SSL pour atténuer les menaces de détournement d’adresses IP (Internet Protocol) et de ports de service Web, et pour empêcher les pirates de recevoir des demandes et de répondre pour le compte du service Web.
Le certificat SSL est comparé à certaines propriétés, dont l'adresse IP à partir de laquelle le message provient. L'attaquant ne peut pas usurper l'adresse IP s'il ne détient pas le certificat SSL du service Web.
Pour plus d’informations, voir Securing Your Network.
Excel Services, fonctions définies par l'utilisateur (UDF)
Dépendances de nom fort
Dans certains cas, un assembly UDF dépend d’autres assemblys déployés avec lui. Le chargement de ces DLL dépendantes aboutit si elles se trouvent dans le Global Assembly Cache ou dans le même dossier que l’assembly UDF.
Dans ce dernier cas, toutefois, le chargement peut échouer si Excel Calculation Services a déjà chargé un autre assembly du même nom (soit il n’est pas fortement nommé, soit une autre version portant le même nom a été déployée et chargée).
Considérez le scénario suivant, dans lequel la structure de répertoires est la suivante :
C:\Udfs\Udf01
Le dossier Udf01 contient :
Udf01.dll
dependent.dll (pas fortement nommé)
Le fichier Udf01.dll a une dépendance envers le fichier dependent.dll.
C:\Udfs\Udf02
Le dossier Udf02 contient :
Udf02.dll (qui dépend d’Interop.dll)
dependent.dll (qui n’est pas fortement nommé)
Le fichier Udf02.dll a une dépendance envers dependent.dll. Les dépendances d’Udf01.dll et d’Udf02.dll partagent le même nom, mais le fichier dependent.dll d’Udf02.dll n’est pas le même que celui d’Udf01.dll.
Prenons le flux suivant :
Udf01.dll est la première DLL à charger. Excel Calculation Services recherche dependent.dll et charge la dépendance d’Udf01.dll, qui dans ce cas est dependent.dll.
Udf02.dll est chargé après Udf01.dll. Excel Calculation Services constate qu’Udf02.dll dépend de dependent.dll. Toutefois, une DLL portant le nom « dependent.dll » est déjà chargée. Par conséquent, le fichier dependent.dll d’Udf02.dll n’est pas chargé et le fichier dependent.dll actuellement chargé est utilisé comme dépendance.
En conséquence, l’objet (dans le cas présent le fichier dependent.dll dont Udf02.dll a besoin) n’est pas chargé en mémoire.
Pour éviter tout conflit de nom, il est recommandé de fortement nommer les dépendances et de leur attribuer des noms uniques.
Général
Noms des DLL de code managé
Pour vous assurer que vos noms d’assemblys sont uniques, utilisez le nom de classe qualifié complet, en respectant les Namespace Naming Guidelines.
Par exemple, utilisez CompanyName.Hierarchichal.Namespace.ClassName au lieu de Namespace.ClassName.
Voir aussi
Tâches
Procédure : Approuver un emplacement