Exploration de l’assainisseur HTML

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 2 minutes de lecture
  • Supprimez tout code indésirable et protégez-vous contre les problèmes de sécurité tels que les attaques de script site à site en assainissant le balisage HTML dans les champs HTML et les champs HTML traduits.

    Utilisez l’assainissement HTML pour vous assurer que le contenu HTML au sein de votre instance ne contient pas de contenu potentiellement dangereux. L’assainissement HTML fonctionne en supprimant les balises HTML qui pourraient être utilisées pour compromettre votre instance, telles que <![CDATA[<script>]]>, <link>ou <embed> les balises qui peuvent être utilisées pour exécuter des scripts indésirables sur votre instance ou diriger vos utilisateurs vers du contenu indésirable. Les balises de sécurité qui contrôlent la mise en forme de votre contenu sont conservées. En tant qu’administrateur, vous pouvez personnaliser le contenu à supprimer ou à conserver. Vous pouvez également contrôler si l’assainissement s’applique à tout le contenu ou uniquement aux champs que vous spécifiez.

    L’assainisseur HTML fonctionne en vérifiant la liste d’inclusion intégrée pour le balisage que vous souhaitez toujours conserver. L’assainisseur fournit le script include HTMLSanitizerConfig que les administrateurs peuvent utiliser pour modifier la liste d’inclusion intégrée. Les éléments peuvent également être ajoutés à la liste d’exclusion pour supprimer le balisage HTML. Le contenu de la liste d’exclusion remplace la liste d’inclusion.

    Les types d’éléments suivants peuvent être ajoutés aux listes d’inclusion et d’exclusion :
    • Attributs globaux
    • N’importe quel élément HTML
    Remarque :
    Par défaut, les attributs d’URL tels que href et src ne prennent en charge que les protocoles suivants :
    • http
    • https
    • Mailto
    • Données
    Par exemple :
    <a href="https://community.servicenow.com/community">ServiceNow Community</a>
    Remarque :
    Pour en savoir plus sur la propriété qui contrôle l’utilisation glide.html.sanitize_all_fields de l’assainisseur HTML, consultez Assainisseur HTML les paramètres de renforcement de la sécurité de l’instance.

    Configurer urlAttributes et les protocoles

    Vous pouvez configurer urlAttributes et leurs protocoles dans le script include HTMLSanitizer . Par exemple :

    HTML_WHITELIST : {
    urlAttributes: { "protocols" : [ "file", "notes" ] },
                    -  -
                    -  -
            }

    Étant donné que les notes se trouvent dans la liste d’inclusion de cet exemple, cette URL n’est pas nettoyée :

    <a title=“Lotus” href=“Notes://ABC/X575C90019DE33/ABC594DCB76D86EB4925653E0011C4C1/ZZ90B7E2D33964749257EEA003456FD”>Lotus</a></p> 

    Liste d’inclusion par défaut

    Remarque :
    La liste d’inclusion par défaut est une liste système et n’est pas accessible par les utilisateurs dans l’instance.
    BUILTIN_HTML_WHITELIST :{
     
        globalAttributes:{ attribute:["id","class","lang","title","style"],
     
                                     attributeValuePattern:{}},
     
        label:{ attribute:["for"]},
     
        font:{ attribute:["color","face","size"]},
     
        a:{ attribute:["href","nohref","name","shape"]},
     
        img:{ attribute:["src","name","alt","border","hspace","vspace","align","height","width"},
     
        table:{ attribute:["border","cellpadding","cellspacing","bgcolor","background","align","no resize","height","width","summary","frame","rules"]},
     
        th:{ attribute:["background","bgcolor","abbr","axis","headers","scope","nowrap","height","width","align","valign","char off","char","colspan","rowspan"]},
     
        td:{ attribute:["background","bgcolor","abbr","axis","headers","scope","nowrap","height","width","align","valign","char off","char","colspan","rowspan"]},
     
        tr:{ attribute:["background","height","width","align","valign","char off","char"]},
     
        thead:{attribute:["align","valign","char off","char"]}, 
     
        tbody:{attribute:["align","valign","char off","char"]}, 
     
        tfoot:{attribute:["align","valign","char off","char"]}, 
     
        colgroup:{attribute:["align","valign","char off","char","span","width"]}, 
     
        col:{attribute:["align","valign","char off","char","span","width"]},
     
        p:{attribute:["align"]},
     
        style:{attributeValuePattern:{"type":"text/css"}}
     
        canvas:{ attribute:["height","width"]},
     
        details:{ attribute:["open"]},
     
        summary:{ attribute:["open","valign","char off","char"]},
     
        button:{ attribute:["disabled","accesskey","type"]},
     
        form:{},
     
        input:{ attribute:["size","maxlength","checked","alt","src","type","disabled","readonly","accesskey","border","usemap"]},
     
        select:{ attribute:["disabled","multiple","size"]},
     
        textarea:{ attribute:["rows","cols","disabled","readonly","accesskey"]},
     
        option:{ attribute:["disabled","label","selected"]},
     
        div:{ attribute:["align"]},
     
        ol:{ attribute:["start","type","square"]},
     
        ul:{ attribute:["type","square","itemscope","itemtype","itemref"]},
     
        li:{ attribute:["value","fb__id","itemprop"]},
     
        span:{ attribute:["color","size","data-mce-bogus","itemprop","face"]},
     
        br:{ attribute:["clear"]},
     
        h3:{ attribute:["itemprop"]},
     
        html:{ attribute:["xmlns","lang","xml:lang"]},
     
        link:{ attribute:["rel","type","href","charset"]},
     
        meta:{ attribute:["name","content","scheme","charset","http-equiv"]},
     
        pre:{ attribute:["xml:space"]},
     
        noscript:{},    h1:{},    h2:{},      h4:{},    h5:{},    h6:{},   
     
        i:{},    b:{},    u:{},    strong:{},    em:{},    small:{},    big:{},   
     
        pre:{},    code:{},    cite:{},    samp:{},    sub:{},    sup:{},    
     
        strike:{},   center:{},  blockquote:{},    hr:{},      map:{},
     
        dd:{},    dt:{},    dl:{},  fieldset:{},    legend:{}, figure:{},  tt:{},
     
        body:{},   caption:{},   head:{},   title:{},  shape:{},},