Champs confidentiels

Vous pouvez désigner des champs de formulaire Web comme confidentiels afin de protéger les informations que les utilisateurs y saisissent. Normalement, toutes les informations qu’un utilisateur saisie dans un formulaire Web sur l’un de vos serveurs Web protégés sont enregistrées dans les journaux Citrix ADC. Toutefois, les informations saisies dans un champ de formulaire Web désigné comme confidentiel ne sont pas enregistrées. Ces informations sont enregistrées uniquement lorsque le site Web est configuré pour enregistrer ces données, normalement dans une base de données sécurisée.

Les types de renseignements courants que vous pourriez vouloir protéger avec une désignation de champ confidentiel sont les suivants :

  • Mots de passe
  • Numéros de carte de crédit, codes de validation et dates d’expiration
  • Numéros de sécurité sociale
  • Numéros d’identification fiscale
  • Adresses de domicile
  • Numéros de téléphone privés

En plus d’être une bonne pratique, l’utilisation appropriée des désignations de terrain confidentielles peut être nécessaire pour la conformité PCI-DSS sur les serveurs de commerce électronique, la conformité HIPAA sur les serveurs qui gèrent les informations médicales aux États-Unis et la conformité avec d’autres normes de protection des données.

Important :

Dans les deux cas suivants, la désignation de zone confidentielle ne fonctionne pas comme prévu :

  • Si un formulaire Web comporte un champ confidentiel ou une URL d’action supérieure à 256 caractères, l’URL de champ ou d’action est tronquée dans les journaux Citrix ADC.
  • Avec certaines transactions SSL, les journaux sont tronqués si le champ confidentiel ou l’URL de l’action est supérieur à 127 caractères.

Dans l’un ou l’autre de ces cas, le Web App Firewall masque une chaîne de 15 caractères avec la lettre « x », au lieu de la chaîne de huit caractères normale. Pour s’assurer que toute information confidentielle est supprimée, l’utilisateur doit utiliser les expressions de nom de champ de formulaire et d’URL d’action correspondant aux 256 premiers ou (dans les cas où SSL est utilisé) les 127 premiers caractères.

Pour configurer votre Web App Firewall pour traiter un champ de formulaire Web sur un site Web protégé comme confidentiel, ajoutez ce champ à la liste Champs confidentiels. Vous pouvez entrer le nom du champ sous la forme d’une chaîne, ou vous pouvez entrer une expression régulière compatible PCRE spécifiant un ou plusieurs champs. Vous pouvez activer la désignation de champ confidentiel lorsque vous ajoutez le champ ou la modifier ultérieurement.

Pour ajouter un champ confidentiel à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez les commandes suivantes :

  • add appfw confidField <fieldName> <url> [-isRegex ( REGEX | NOTREGEX )] [-comment "<string>"] [-state ( ENABLED | DISABLED )]
  • save ns config

Exemple

L’exemple suivant montre comment ajouter tous les champs de formulaire Web dont le nom commence par Password à la liste des champs confidentiels.

add appfw confidField Password "https?://www[.]example[.]com/[^<>]\*[^a-z]password[0-9a-z._-]\*[.](asp|cgi|htm|html|htp|js|php)" -isRegex REGEX -state ENABLED
save ns config

Pour modifier un champ confidentiel à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez les commandes suivantes :

  • set appfw confidField <fieldName> <url> [-isRegex ( REGEX | NOTREGEX )][-comment "<string>"] [-state ( ENABLED | DISABLED )]
  • `save ns config’

Exemple

L’exemple suivant modifie la désignation de champ confidentiel pour ajouter un commentaire.

set appfw confidField Password "https?://www[.]example[.]com/[^<>]\*[^a-z]password[0-9a-z._-]\*[.](asp|cgi|htm|html|htp|js|php)" -comment "Protect password fields." -isRegex REGEX -state ENABLED
save ns config

Pour supprimer un champ confidentiel à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez les commandes suivantes :

  • rm appfw confidField <fieldName> <url>
  • save ns config

Pour configurer un champ confidentiel à l’aide de l’interface graphique

  1. Accédez à Sécurité > Pare-feu d’application.
  2. Dans le volet d’informations, sous Paramètres, cliquez sur Gérer les champs confidentiels.
  3. Dans la boîte de dialogue Gérer les champs confidentiels, effectuez l’une des opérations suivantes :
    • Pour ajouter un nouveau champ de formulaire à la liste, cliquez sur Ajouter.
    • Pour modifier une désignation de champ confidentiel existante, sélectionnez le champ, puis cliquez sur Modifier. La boîte de dialogue Champs confidentiels de Web App Firewall s’affiche.

      Remarque :

      Si vous sélectionnez une désignation de champ confidentiel existante, puis cliquez sur Ajouter, la boîte de dialogue Créer un champ de formulaire confidentielaffiche les informations relatives à ce champ confidentiel. Vous pouvez modifier ces informations pour créer votre nouveau champ confidentiel.

  4. Dans la boîte de dialogue, remplissez les éléments. Ils sont :
    • Activez la case à cocher. Sélectionnez ou désactivez pour activer/désactiver cette désignation de champ confidentiel.
    • Est un nom de champ de formulaire une case à cocher expression régulière. Sélectionnez ou désactivez pour activer les expressions régulières au format PCRE dans le nom du champ de formulaire.
    • Nom du champ. Entrez une chaîne littérale ou une expression régulière au format PCRE qui représente un nom de champ spécifique ou qui correspond à plusieurs champs dont les noms suivent un modèle.
    • URL de l’action. Entrez une URL littérale ou une expression régulière qui définit une ou plusieurs URL de la ou des pages Web sur lesquelles se trouvent le ou les formulaires Web contenant le champ confidentiel.
    • Commentaires. Entrez un commentaire. Facultatif.
  5. Cliquez sur Créer ou sur OK.
  6. Pour supprimer une désignation de champ confidentiel de la liste des champs confidentiels, sélectionnez la liste des champs confidentiels à supprimer, puis cliquez sur Supprimer pour la supprimer, puis cliquez sur OK pour confirmer votre choix.
  7. Lorsque vous avez terminé d’ajouter, de modifier et de supprimer des désignations de champs confidentiels, cliquez sur Fermer.

Exemples

Voici quelques expressions régulières qui définissent les noms de champs de formulaire que vous pourriez trouver utiles :

  • ^passwd_ (Applique l’état du champ confidentiel à tous les noms de champs commençant par la chaîne “passwd_”.)

  • ^(([0-9a-zA-Z.-] *||x [0-9a-fa-f] [0-9a-fa-f]) +-) ? passwd (Applique l’état du champ confidentiel à tous les noms de champs commençant par la chaîne passwd_, ou qui contiennent la chaîne -passwd_ après une autre chaîne pouvant contenir des caractères spéciaux non ASCII.)

Voici quelques expressions régulières qui définissent des types d’URL spécifiques que vous pourriez trouver utiles. Remplacez vos propres hôtes et domaines Web par ceux figurant dans les exemples.

  • Si le formulaire Web apparaît sur plusieurs pages Web sur l’hôte Web www.example.com, mais que toutes ces pages Web sont nommées logon.pl?, vous pouvez utiliser l’expression régulière suivante :

     https?://www[.]example[.]com/([0-9A-Za-z][0-9A-Za-z_.-]*/)*logon[.]pl?
    
  • Si le formulaire Web apparaît sur plusieurs pages Web de l’hôte Web www.example-español.com, qui contient le caractère spécial n-tilde (ñ), vous pouvez utiliser l’expression régulière suivante, qui représente le caractère spécial n-tilde sous la forme d’une chaîne UTF-8 codée contenant C3 B1, le code hexadécimal attribué à cette dans le jeu de caractères UTF-8 :

     https?://www[.]example-espa\xC3\xB1ol[.]com/([0-9A-Za-z][0-9A-Za-z_.-]\*/)\* logon[.]pl?
    
  • Si le formulaire Web contenant query.pl apparaît sur plusieurs pages Web sur différents hôtes du domaine example.com, vous pouvez utiliser l’expression régulière suivante :

     https?://([0-9A-Za-z][0-9A-Za-z_-.]*[.])\*example[.]com/([0-9A-Za-z][0-9A-Za-z_-.]\*/)*logon[.]pl?
    
  • Si le formulaire Web contenant query.pl apparaît sur plusieurs pages Web sur différents hôtes dans différents domaines, vous pouvez utiliser l’expression régulière suivante :

     https?://([0-9A-Za-z][0-9A-Za-z_-.]\*[.])\*[0-9A-Za-z][0-9A-Za-z_-.]+[.][a-z]{2,6}/([0-9A-Za-z][0-9A-Za-z_-.]*/)*logon[.]pl?
    
  • Si le formulaire Web apparaît sur plusieurs pages Web sur l’hôte Web www.example.com, mais que toutes ces pages Web sont nommées logon.pl?, vous pouvez utiliser l’expression régulière suivante :

     https?://www[.]example[.]com/([0-9A-Za-z][0-9A-Za-z_-.]*/)*logon[.]pl?