Exploration de l’assainisseur HTML

  • Rversion finale: Xanadu
  • Mis à jour 1 août 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 de votre instance ne contient pas de contenu potentiellement dangereux. L’assainissement HTML fonctionne en supprimant les balises HTML susceptibles de 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 sûres qui contrôlent la mise en forme de votre contenu sont préservées. En tant qu’administrateur, vous pouvez personnaliser le contenu supprimé ou conservé. 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 l’include de script 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
    • Tous les éléments 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 de l’assainisseur HTML, consultez Assainisseur HTML Paramètres de renforcement de la glide.html.sanitize_all_fields sécurité de l’instance.

    Configurer urlAttributes et les protocoles

    Vous pouvez configurer urlAttributes et leurs protocoles dans l’include de script HTMLSanitizer . Par exemple :

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

    Étant donné que les notes se trouvent dans la liste d’inclusion dans 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 aux 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:{},},