Protection des ressources dans WebSphere Application Server
Les ressources HCL Commercesuivantes sont protégées via contrôle d'accès par WebSphere Application Server :
- Beans d'entité
- Ces beans modélisent des objets dans une application de commerce électronique. Il s'agit d'objets distribués auxquels les clients distants peuvent accéder.
- Modèles JSP
- HCL Commerce utilise des modèles JSP pour afficher des pages. Chaque modèle JSP peut contenir un ou plusieurs beans de données qui récupèrent des données à partir de beans d'entité. Les clients peuvent demander des pages JSP en composant une requête URL.
- Commandes de contrôleur et instructions de visualisation
- Les clients peuvent demander des commandes de contrôleur et des instructions de visualisation en composant des requêtes URL. En outre, une page d'affichage peut contenir un lien vers une autre en utilisant le nom de fichier JSP ou le nom de la vue, tel qu'enregistré dans Configuration de l'application Web.
Le Transaction server est généralement configuré pour utiliser les chemins Web suivants :
- /webapp/wcs/stores/servlet/*
- Ceci est utilisé pour les requêtes au servlet de requêtes.
- /webapp/wcs/stores/*.jsp
- Ceci est utilisé pour les requêtes au servlet JSP.
Le diagramme suivant montre l'itinéraire que les requêtes peuvent potentiellement suivre pour accéder aux ressources HCL Commerce, pour la configuration du chemin d'accès Web précédent.
Toutes les requêtes légitimes doivent être adressées au servlet de requêtes qui les dirige ensuite vers le contrôleur Web. Le contrôleur Web implémente le contrôle d'accès pour les commandes de contrôleur et les vues. Toutefois, les chemins d'accès Web indiqués ci-dessus permettent aux utilisateurs malveillants d'accéder directement aux modèles JSP (chemin d'accès 1) et aux beans d'entité (chemin d'accès 2). Afin d'éviter que ces attaques malveillantes ne soient couronnées de succès, elles doivent être rejetées au moment de l'exécution.
L'accès direct aux modèles JSP et aux beans d'entité peut être empêché en utilisant l'une des approches suivantes :
- WebSphere Application Server sécurité
- WebSphere Application Server fournit un certain nombre de fonctionnalités de sécurité. HCL Commerce utilise l'une de ces fonctionnalités pour s'assurer que l'ensemble des méthodes de beans d'entreprise et des modèles JSP soient configurés pour être utilisés uniquement par une identité choisie. Pour accéder à ces ressources HCL Commerce, une requête URL doit être acheminée vers le servlet de requêtes. Le servlet de requêtes définit l'identité choisie sur l'unité d'exécution actuelle avant de la transmettre au contrôleur Web. Le contrôleur Web s'assure alors que l'appelant dispose de l'autorisation requise avant de transmettre la requête à la commande de contrôleur ou à la vue correspondante. Toute tentative d'accéder directement aux modèles JSP et aux beans entité (c'est-à-dire sans utiliser le contrôleur Web) est rejetée par le composant de sécurité WebSphere Application Server.
Pour plus d'informations sur la sécurité dans WebSphere Application Server, reportez-vous à la rubrique Administration du système dans la documentation WebSphere Application Server.
- Protection pare-feu
- Il est recommandé d'exécuter Transaction server derrière un pare-feu. Lorsqu'un serveur HCL Commerce s'exécute derrière le pare-feu, les clients Internet ne sont pas en mesure d'accéder directement aux beans d'entité. Avec de cette approche, la protection des modèles JSP est fournie par le bean de données qui est inclus dans la page. Le bean de données est activé par le gestionnaire de beans de données. Le gestionnaire de beans de données détecte si le modèle JSP a été transmis par une instruction de visualisation.. S'il n'a pas été transmis par une instruction de visualisation, une exception est émise et la requête concernant le modèle JSP est rejetée. Remarque : Si vous placez un pare-feu entre votre serveur d'application HCL Commerce et votre serveur Web, le plug-in de votre serveur Web peut ne pas reconnaître quand le serveur d'applications est en panne, empêchant ainsi un comportement de défaillance correct. Dans ce cas, il est recommandé d'activer l'attribut
ExtendedHandshakedans le fichier de configuration de plug-in de votre serveur Web,plugin-cfg.xml. Par exemple :<Server CloneID="1234abcd" ConnectTimeout="0" ExtendedHandshake="true" LoadBalanceWeight="2" MaxConnections="-1" Name="WC_demo" ServerIOTimeout="0" WaitForContinue="false">