3.5 Protection contre les attaques multisites par usurpation de requête

Une attaque multisites par usurpation de requête exploite la confiance d’un site Web envers l’utilisateur dans le but de transmettre des commandes non autorisées à son insu. Le principe de l’attaque consiste à inclure un lien ou un script dans une page Web, afin d’accéder à un autre site sur lequel l’utilisateur a déjà été authentifié.

Par exemple, vous pouvez être connecté à Administration Console tout en explorant un autre site Web. L’une des pages Web peut inclure une balise d’image HTML avec un attribut src visant un script côté serveur sur le site Web de la victime. En exploitant le mécanisme d’authentification de session basé sur les cookies, le site Web attaquant peut envoyer des requêtes malveillantes au script côté serveur ciblé en les faisant passer pour les requêtes de l’utilisateur autorisé. Pour consulter des exemples supplémentaires, voir https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)#Examples.

Les caractéristiques suivantes sont communes aux cas de CSRF :
  • impliquent des sites qui reposent sur une identité de l’utilisateur ;

  • exploitent la confiance du site dans cette identité ;

  • trompent le navigateur de l’utilisateur pour le faire envoyer des requêtes HTTP à un site cible ;

  • impliquent des requêtes HTTP ayant des effets secondaires.

LiveCycle utilise la fonctionnalité de filtrage des référents pour bloquer les attaques CSRF. Les termes suivants sont utilisés dans cette section pour décrire ce dispositif de filtrage des référents :

  • Référent autorisé : un référent est l’adresse de la page source qui envoie une requête au serveur. Pour les pages ou les formulaires JSP, ce référent est généralement la page précédente dans l’historique de navigation. Les référents pour les images sont généralement les pages sur lesquelles les images sont affichées. Vous pouvez identifier les référents qui sont autorisés à accéder à votre serveur en les ajoutant à la liste de référents autorisés.

  • Exceptions aux référents autorisés : si vous souhaitez restreindre l’accès pour un référent particulier dans votre liste de référents autorisés. Pour mettre en place cette restriction vous pouvez ajouter des chemins d’accès individuels de ce référent vers la liste des exceptions aux référents autorisés. Les requêtes provenant des chemins d’accès de la liste des exceptions aux référents autorisés ne peuvent appeler aucune ressource du serveur LiveCycle. Vous pouvez définir des exceptions aux référents autorisés pour une application spécifique et également utiliser une liste globale des exceptions s’appliquant à toutes les applications.

  • URI autorisés : il s’agit d’une liste des ressources générées sans vérification de l’en-tête référent. Par exemple, les ressources telles que les pages d’aide, qui n’entraînent pas de changements d’état sur le serveur, peuvent être ajoutées à cette liste. Les ressources figurant dans la liste des URI autorisés ne sont jamais bloquées par le filtrage des référents, quel que soit le référent.

  • Référent de valeur NULL (null referer) : une requête serveur qui n’est pas associée ou ne provient pas d’une page Web parente est considérée comme une requête de référent de valeur NULL. Par exemple, lorsque vous ouvrez une nouvelle fenêtre de navigateur, saisissez une adresse puis appuyez sur la touche Entrée, le référent envoyé au serveur est nul. Une application de bureau (.NET ou SWING), en rendant une requête HTTP à un serveur Web, envoie également un référent de valeur NULL au serveur.