# Headers de sécurité

Certains headers http sont utiles pour la sécurité de la page ou du site. Dans la plateforme, une section a été ajoutée afin de pouvoir modifier la configuration des headers http par défaut. Lien vers la documentation de l'interface

# Configuration au format xml

Il est possible d'importer un fichier xml dans le but de définir les règles des headers à appliquer.

# Les types de headers :

  • Le header Strict-Transport-Security

    • La documentation du header Strict-Transport-Security
    • Les valeurs possibles :
      • active = "false" (true par défaut). Si le champ est à "true" le header est rajouté sur toutes les requêtes.
      • value est un champ texte
  • Le header Content-Security-Policy

    • La documentation du header Content-Security-Policy
    • Les valeurs possibles :
      • active = "false" (true par défaut). Si le champ est à "true" le header est rajouté sur toutes les requêtes.
      • value est un champ de type énuméré, il est possible de renseigner une des valeurs suivantes :
        • LOCAL_SECURITY correspond à la règle default-src 'self'; style-src 'unsafe-inline' 'self'; font-src data: 'self'; img-src data: 'self'; object-src 'none';
        • DISTANT_SECURITY correspond à la règle default-src 'self'; style-src 'unsafe-inline' 'self'; img-src *; font-src *; object-src 'none';
        • CUSTOM si ce champ est renseigné, le champ custom est utilisable.
      • custom est un champ texte, on lui renseigne la règle souhaitée (si CUSTOM est renseigné).
  • Le header Referrer-Policy

    • La documentation du header Referrer-Policy
    • Les valeurs possibles :
      • active = "false" (true par défaut). Si le champ est à "true" le header est rajouté sur toutes les requêtes.
      • value est un champ de type énuméré, il est possible de renseigner une des valeurs suivantes :
        • NO_REFERRER correspond à la règle no-referrer
        • SAME_ORIGIN correspond à la règle same-origin
        • CUSTOM si ce champ est renseigné, le champ custom est utilisable.
      • custom est un champ texte, on lui renseigne la règle souhaitée (si CUSTOM est renseigné).
  • Le header X-Frame-Options

    • La documentation du header X-Frame-Options
    • Les valeurs possibles :
      • active = "false" (true par défaut). Si le champ est à "true" le header est rajouté sur toutes les requêtes.
      • value est un champ de type énuméré, il est possible de renseigner une des valeurs suivantes :
        • DENY correspond à la règle DENY
        • SAMEORIGIN correspond à la règle SAMEORIGIN
  • Le header X-Content-Type-Options

    • La documentation du header X-Content-Type-Options
    • Les valeurs possibles :
      • active = "false" (true par défaut). Si le champ est à "true" le header est rajouté sur toutes les requêtes.
      • value est un champ de type énuméré, il est possible de renseigner une des valeurs suivantes :
        • NOSNIFF correspond à la règle nosniff
  • Le header Cookies

    • La documentation des cookies
    • Les valeurs possibles :
      • active = "false" (true par défaut). Si le champ est à "true" le header est rajouté sur toutes les requêtes.
      • value est un champ de type énuméré, il est possible de renseigner plusieurs des valeurs suivantes :
        • Secure correspond à la règle Secure
        • HttpOnly correspond à la règle HttpOnly
        • Domain correspond à la règle Domain=[CORE_URL], CORE_URL est un paramètre applicatif.
        • SameSite correspond à la règle SameSite=Strict
        • CUSTOM si ce champ est renseigné, le champ custom est utilisable.
      • custom est un champ texte, on lui renseigne la règle souhaitée (si CUSTOM est renseigné dans la liste des valeurs).

WARNING

Les valeurs renseignées dans ce header s'ajoutent à celles renseignées dans le paramètre applicatif CORE_SESSION_COOKIE.

Exemple de fichier à importer via le script importConfiguration :

<?xml version="1.0" encoding="utf-8" ?>
<security:config xmlns:security="https://platform.anakeen.com/4/schemas/headers/1.0"
                 xmlns="https://platform.anakeen.com/4/schemas/sc/1.0">
    <security:headersConfiguration>
        <security:strict-transport-security value="max-age=63072000;includeSubDomains;preload"/>
        <security:csp value="LOCAL_SECURITY" />
        <security:referrer value="no-referrer"/>
        <security:x-frame-options value="DENY"/>
        <security:x-content-type-options value="no-sniff"/>
        <security:cookies Secure="true" SameSiteStrict="true" HttpOnly="true"/>
    </security:headersConfiguration>
</security:config>