Como fazer escapes de marcação XML [Atualizado na Central de segurança 1.3]

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 1 min. de leitura
  • Use a propriedade glide.ui.escape_text para forçar o escape de valores XML no nível do analisador antes de transmiti-los ao navegador do cliente.

    O script entre sites ocorre quando um invasor injeta JavaScript mal-intencionado em um ponto de entrada. A plataforma/aplicação não consegue escapar do JavaScript malicioso antes de transmiti-lo ao navegador da vítima para execução. O escape neste contexto significa o seguinte:
    • & --> &
    • < --> <
    • > --> >
    • " --> "
    • ' --> '
    • / --> /

    Exemplo: <![CDATA[<script> alert('Ataque XSS');</script> ]]>

    Escape: <script>alert('XSS Attack');</script>

    Certifique-se de que a propriedade glide.ui.escape_text exista na tabela sys_properties e esteja definida como verdadeira.

    Aviso:
    Esta é uma propriedade tipo porto seguro, o que significa que o valor não pode ser alterado após ser mudado. A reversão não é possível.

    Mais informações

    Atributo Descrição
    Nome da propriedade glide.ui.escape_text
    Tipo de configuração Propriedades do sistema (/sys_properties_list.do)
    Categoria Validação, limpeza e codificação
    Finalidade O escape de XML garante que os navegadores não analisem o JavaScript mal-intencionado incorporado em dados não confiáveis e o executem como JavaScript.
    • Um usuário mal-intencionado pode tentar um ataque XSS para sequestrar a sessão de outros usuários ou redirecionar o usuário para um site mal-intencionado.
    • A NOW Platform contém código para proteger os cookies, mas o escape depende desta propriedade ser definida como verdadeira.
    Valor recomendado verdadeiro
    Classificação de risco de segurança 8,8
    Impacto funcional (Médio) Essa correção impõe a codificação XML no nível do analisador XML na interface do usuário. Ele renderiza os resultados codificados para o usuário, o que pode ter um impacto na funcionalidade com base na interação do usuário da instância com os dados resultantes.
    Risco à segurança (Alto) A validação de entrada deve ocorrer na aplicação para defesa contra ataques de script entre sites. Esses ataques permitem que scripts externos sejam executados na sessão do usuário no contexto do navegador logado. Os invasores podem usá-los para roubar informações da sessão e dados confidenciais.
    Solução alternativa

    Depois de definir esta propriedade como verdadeira, a renderização é interrompida nos marcadores HTML na descrição do item do catálogo ou no texto de ajuda da variável do item do catálogo. Você pode não conseguir usar a formatação HTML em alguns campos.

    No entanto, se a propriedade glide.ui.escape_text for desativada, todas as expressões JEXL serão prefixadas com um codificador de saída:

    $⁠{JS:expression}

    $⁠{HTML:expression}

    ou

    $⁠{JS,HTML:expression}