Escapar do script Jelly

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 1 min. de leitura
  • Use a propriedade glide.ui.escape_all_script para forçar o escape de todos os scripts injetados no Jelly.

    Ela escapa de todas as cadeias de caracteres JS e HTML incluídas em<j:jelly> ... </j:jelly> antes de serem gravadas no fluxo de saída, evitando que vários problemas de XSS ocorram.

    Mais informações

    Atributo Descrição
    Nome da propriedade glide.ui.escape_all_script
    Tipo de configuração Propriedades do sistema (/sys_properties_list.do)
    Categoria Validação, limpeza e codificação
    Finalidade

    Se a propriedade não estiver definida como verdadeira, os desenvolvedores precisarão executar várias etapas em cada script Jelly personalizado para evitar problemas de XSS. Essas etapas incluem localizar as variáveis Jelly enviadas para o fluxo de saída para renderizar em páginas da Web e executar o escape em cada um dos seguintes marcadores:

    $â {JS:expression}

    $â {HTML:expression}

    OU

    $â {JS,HTML:expression}

    Valor recomendado verdadeiro
    Classificação de risco de segurança 7,3
    Impacto funcional (Médio) Esta correção impõe o escape do Jelly no nível do analisador. Ela pode ter um impacto na funcionalidade na interação do usuário da instância com os dados resultantes.
    Risco à segurança (Alto) A validação de entrada deve ocorrer em todas as entradas do usuário inseridas na aplicação. Ao fazer isso, os ataques de injeção contra a plataforma podem ser defendidos e protegidos.
    Solução alternativa

    A IU pode ser afetada porque alguns dos scripts e marcadores HTML projetados para renderização em uma página da Web podem aparecer quebrados. Esta correção envia a página codificada de saída para o navegador renderizar.

    Por exemplo, em vez de 'minha cadeia de caracteres aqui', ela pode exibir '<u>minha cadeia de caracteres aqui</u>, já que o marcador <u> teve o escape correto. Nesse caso, para impedir o escape, adicione o prefixo NOESC à expressão do Jelly para impedir o escape de JS. Por exemplo:
    • Antes: ($[jvar_context_menus]);
    • Depois: ($[NOESC: jvar_context_menus]);
    • Antes: $[jvar_ui_policy_scripts]
    • Depois: $[NOESC: jvar_ui_policy_scripts]
    Referências

    Configurações de Alta Segurança

    Marcadores Jelly

    Para saber mais sobre como adicionar ou criar uma propriedade do sistema, consulte Add a system property.