Citrix ADC

Gestion des types de contenu

Les serveurs Web ajoutent un en-tête Content-Type avec une définition MIME/Type pour chaque type de contenu. Les serveurs Web servent de nombreux types de contenu différents. Par exemple, le code HTML standard est attribué au type MIME « text/html ». Les images JPG sont affectées au type de contenu « image/jpeg » ou « image/jpg ». Un serveur Web normal peut servir différents types de contenu, tous définis dans l’en-tête Type de contenu par le MIME/type attribué.

De nombreuses règles de filtrage du Web App Firewall sont conçues pour filtrer un type de contenu spécifique. Les règles de filtrage s’appliquent à un type de contenu tel que HTML et sont souvent inappropriées lors du filtrage d’un autre type de contenu (comme les images). Par conséquent, le Web App Firewall tente de déterminer le type de contenu des demandes et des réponses avant de les filtrer. Si un serveur Web ou un navigateur n’ajoute pas d’en-tête Content-Type à une requête ou à une réponse, le Web App Firewall applique un type de contenu par défaut et filtre le contenu en conséquence.

Le type de contenu par défaut est généralement « application/octet-stream » avec la définition MIME/type la plus générique. Le MIME/type est approprié pour tout type de contenu qu’un serveur Web est susceptible de servir. Mais ne fournit pas beaucoup d’informations au Web App Firewall pour lui permettre de choisir le filtrage approprié. Si un serveur Web protégé est configuré pour ajouter des en-têtes de type de contenu précis, vous pouvez créer un profil pour le serveur Web et lui attribuer un type de contenu par défaut. Ceci est fait pour améliorer à la fois la vitesse et la précision du filtrage.

Vous pouvez également configurer une liste de types de contenu de requête autorisés pour un profil spécifique. Lorsque cette fonctionnalité est configurée, si le Web App Firewall filtre une demande qui ne correspond pas à l’un des types de contenu autorisés, il bloque la demande. Après la mise à niveau de la version 10.5 vers la version 11.0, les types de contenu inconnus qui ne sont pas dans la liste des types de contenu autorisés par défaut ne se lient pas. Vous pouvez ajouter d’autres types de contenu que vous voulez être autorisés aux règles assouplies.

Les requêtes doivent toujours être des types « application/x-www-form-urlencoded », « multipart/form-data » ou « text/x-gwt-rpc ». Le Web App Firewall bloque toute demande ayant un autre type de contenu désigné.

Remarque

Vous ne pouvez pas inclure les types de contenu « application/x-www-form-urlencoded » ou « multipart/form-data » dans la liste des types de contenu de réponse autorisés.

Pour définir le type de contenu de la requête par défaut à l’aide de l’interface de ligne de commande

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

  • set appfw profile <name> -requestContentType <type>
  • save ns config

Exemple

L’exemple suivant définit le type de contenu “text/html” comme valeur par défaut pour le profil spécifié :

set appfw profile profile1 -requestContentType "text/html"
save ns config

Pour supprimer le type de contenu de requête par défaut défini par l’utilisateur à l’aide de l’interface de ligne de commande

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

  • unset appfw profile <name> -requestContentType <type>
  • save ns config

Exemple

L’exemple suivant désactive le type de contenu par défaut “text/html” pour le profil spécifié, ce qui permet au type de revenir à “application/octet-stream” :

unset appfw profile profile1 -requestContentType "text/html"
save ns config

Remarque

Utilisez toujours le dernier en-tête de type de contenu pour le traitement et supprimez les en-têtes de type de contenu restants, le cas échéant, ce qui garantit que le serveur principal reçoit une requête avec un seul type de contenu.

Pour bloquer les requêtes qui peuvent être contournées, ajoutez une stratégie de Web App Firewall avec la règle HTTP.REQ.HEADER (“content-type”).COUNT.GT(1)’ et le profil comme appfw_block.

Si une demande est reçue sans en-tête Content-Type ou si la demande possède un en-tête Content-Type sans valeur, le Web App Firewall applique la valeur RequestContentType configurée et traite la demande en conséquence.

Pour définir le type de contenu de réponse par défaut à l’aide de l’interface de ligne de commande

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

  • set appfw profile <name> -responseContentType <type>
  • save ns config

Exemple

L’exemple suivant définit le type de contenu “text/html” comme valeur par défaut pour le profil spécifié :

set appfw profile profile1 -responseContentType "text/html"
save ns config

Pour supprimer le type de contenu de réponse par défaut défini par l’utilisateur à l’aide de l’interface de ligne de commande

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

  • unset appfw profile <name> -responseContentType <type>
  • save ns config

Exemple

L’exemple suivant dédéfinit le type de contenu par défaut “text/html” pour le profil spécifié, ce qui permet au type de revenir à “application/octet-stream” :

unset appfw profile profile1 -responseContentType "text/html"
save ns config

Pour ajouter un type de contenu à la liste des types de contenu autorisés à l’aide de l’interface de ligne de commande

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

  • bind appfw profile <name> -ContentType <contentTypeName>
  • save ns config

Exemple

L’exemple suivant ajoute le type de contenu « text/shtml » à la liste des types de contenu autorisés pour le profil spécifié :

bind appfw profile profile1 -contentType "text/shtml"
save ns config

Pour supprimer un type de contenu de la liste des types de contenu autorisés à l’aide de l’interface de ligne de commande

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

  • unbind appfw profile <name> -ContentType <contentTypeName>
  • save ns config

Exemple

L’exemple suivant supprime le type de contenu « text/shtml » de la liste des types de contenu autorisés pour le profil spécifié :

unbind appfw profile profile1 -contentType "text/shtml"
save ns config

Gérer les types de contenu urlencoded et multipart-form

Le pare-feu Citrix ADC Web App vous permet désormais de configurer les types de contenu Urlencoded et Multipart-Form pour les formulaires. La configuration du type de contenu est similaire à la liste XML et JSON. En fonction de la configuration, le Web App Firewall classe les demandes et vérifie le type de contenu urlencoded ou multipart-form.

Pour configurer le profil de Web App Firewall avec les types de contenu urlencoded et multipart-form À l’invite de commandes, tapez :

bind appfw profile p2 -contentType <string>

Exemple :

bind appfw profile p2 -contentType UrlencodedFormContentType

bind appfw profile p2 -ContentType appfwmultipartform

Pour gérer les types de contenu par défaut et autorisés à l’aide de l’interface graphique

  1. Accédez à Sécurité > Web App Firewall > Profils.
  2. Dans le volet d’informations, sélectionnez le profil à configurer, puis cliquez sur Modifier. La boîte de dialogue Configurer le profil du Web App Firewall s’affiche.
  3. La boîte de dialogue Configurer le profil du Web App Firewall, cliquez sur l’onglet Paramètres.
  4. Sous l’onglet Paramètres, faites défiler vers le bas à mi-chemin jusqu’à la zone Type de contenu.
  5. Dans la zone Type de contenu, configurez le type de contenu de la demande ou de la réponse par défaut :
    • Pour configurer le type de contenu de la demande par défaut, tapez la définition MIME/type du type de contenu que vous souhaitez utiliser dans la zone de texte Demande par défaut.
    • Pour configurer le type de contenu de réponse par défaut, tapez la définition MIME/type du type de contenu à utiliser dans la zone de texte Réponse par défaut.
    • Pour créer un nouveau type de contenu autorisé, cliquez sur Ajouter. La boîte de dialogue Ajouter un type de contenu autorisé s’affiche.
    • Pour modifier un type de contenu autorisé existant, sélectionnez ce type de contenu, puis cliquez sur Ouvrir. La boîte de dialogue Modifier le type de contenu autorisé s’affiche.
  6. Pour gérer les types de contenu autorisés, cliquez sur Gérer les types de contenu autorisés.
  7. Pour ajouter un nouveau type de contenu ou modifier un type de contenu existant, cliquez sur Ajouter ou Ouvrir et, dans la boîte de dialogue Ajouter un type de contenu autorisé ou Modifier un type de contenu autorisé, procédez comme suit.
    1. Active/désactivez la case à cocher Activé pour inclure le type de contenu dans la liste des types de contenu autorisés ou l’exclure de celle-ci.

    2. Dans la zone de texte Type de contenu, tapez une expression régulière qui décrit le type de contenu à ajouter ou modifiez l’expression régulière de type de contenu existante.

      Les types de contenu sont formatés exactement comme les descriptions de type MIME.

      Remarque :

      Vous pouvez inclure n’importe quel type MIME valide dans la liste des types de contenu autorisés. Étant donné que de nombreux types de documents peuvent contenir du contenu actif et peuvent donc potentiellement contenir du contenu malveillant, vous devez faire preuve de prudence lorsque vous ajoutez des types MIME à cette liste.

    3. Fournissez une brève description expliquant la raison pour laquelle ce type MIME particulier a été ajouté à la liste des types de contenu autorisés.

    4. Cliquez sur Créer ou sur OK pour enregistrer vos modifications.

  8. Cliquez sur Fermer pour fermer la boîte de dialogue Gérer les types de contenu autorisés et revenir à l’onglet Paramètres.
  9. Cliquez sur OK pour enregistrer vos modifications.

Pour gérer les types de contenu Urlencoded ou Multipart-form à l’aide de l’interface graphique Citrix ADC

  1. Accédez à Sécurité > Web App Firewall > Profils.
  2. Dans le volet d’informations, sélectionnez le profil à configurer, puis cliquez sur Modifier.
  3. Dans la page Configurer le profil du Web App Firewall, sélectionnez les paramètres du profil dans la section Paramètres avancés.
  4. Sous la section Type de contenu inspecté, définissez les paramètres suivants :

    1. application/x-www-form-urlencoded. Cochez la case pour inspecter le type de contenu Urlencoded.
    2. multipart/form-data. Sélectionnez la coche pour inspecter le type de contenu Multipart-form.
  5. Cliquez sur OK.

Gestion du contenu