Escapar script Jelly [Atualizado na Central de segurança 1.3 e 1.5]
Use a propriedade glide.ui.escape_all_script para forçar o escape de todos os scripts injetados no Jelly.
Esta propriedade faz o escape de todas as cadeias de caracteres JS e HTML incluídas em<j:jelly> ...</j:jelly> antes de serem gravados no fluxo de saída, evitando a ocorrência de vários problemas de XSS. Se glide.ui.escape_all_script não estiver definido com o valor recomendado de verdadeiro, o escape de scripts injetados no Jelly será desabilitado. Sem essa mitigação, a plataforma se torna amplamente aberta a uma variedade de ataques de injeção de script. Um invasor pode executar scripts Rhino arbitrários na instância.
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) |
| Tipo de dados | booliano |
| 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:
OU
|
| Valor recomendado | verdadeiro |
| Valor-padrão | verdadeiro |
| Classificação de risco de segurança | 7,3 |
| Impacto funcional | 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:
Aviso: Tenha cuidado ao usar esses marcadores. Se a entrada do usuário for exibida aqui, isso poderá abrir uma vulnerabilidade de segurança. |
| 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.