Install
$ agentstack add skill-totvs-fluig-agent-skills-fluig-review-security Open-source listing, not yet scanned by AgentStack. Follow the source repository for install instructions.
Security review
⚠ Flagged1 finding(s); flagged for manual review. · v0.1.0 How review works →
- • Prompt-injection patterns
- • Secret / credential exfiltration
- • Dangerous shell & filesystem operations
- • Untrusted network calls
- • Known-malicious package signatures
- high Dangerous shell/eval execution.
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ● Dynamic code execution Used
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Revisão de Segurança (OWASP Top 10) de Frontend Fluig
Esta skill revisa a segurança de código frontend Fluig sob a ótica do OWASP Top 10 e emite achados por severidade; ela não duplica convenções — o arquivo de context/ é a fonte de verdade, referenciada abaixo. Usa apenas API pública e não reescreve o código.
Objetivo
Revisar, com responsabilidade única, a segurança de código frontend de customização Fluig sob a ótica do OWASP Top 10, identificando vulnerabilidades e produzindo um relatório de achados classificados por severidade, cada um vinculado à regra correspondente do arquivo de contexto e à categoria OWASP. Para aplicar as correções, use a skill fluig-validate-security.
Quando Usar
- Antes de um merge, para uma revisão de segurança focada de um widget, Custom Element ou template FreeMarker.
- Quando o código manipula entrada do usuário no DOM, na persistência ou na exibição.
- Quando há uso de
innerHTML,eval()/new Function()ou interpolação dinâmica em FreeMarker. - Quando dados sensíveis podem estar expostos no cliente ou em chamadas a endpoints.
Entradas Esperadas
| Entrada | Descrição | Obrigatória | |---------|-----------|-------------| | Código alvo | Trecho ou arquivo frontend a revisar (JS de widget/Custom Element, FreeMarker) | sim | | Origem dos dados do usuário | De onde vêm os dados não confiáveis (formulário, query string, resposta de API, parâmetros) | não | | Contexto do artefato | Tipo do artefato e fluxo de dados | não |
Contexto de Referência (Fonte de Verdade)
Leia antes de executar — não reproduza o conteúdo aqui:
- [conventions.md](../../context/conventions.md) — seção Segurança (APIs públicas):
WCMAPI.validateXSS,DOMPurify.sanitize,textContentvsinnerHTML, escape FreeMarker (${value?html},${value?js_string}), proibição deeval()/new Function()com dados dinâmicos, sanitização na entrada e na exibição, e chamadas REST internas viaWCMAPI/FLUIGC.ajax.
Regras Aplicáveis (Resumo Executivo)
Somente o mínimo para orientar a revisão, mapeado ao OWASP Top 10; o detalhe está no contexto. Cada achado deve citar a regra de origem. Use apenas API pública.
- Injeção / XSS (A03): entrada do usuário sanitizada com
DOMPurify.sanitize(HTML válido) ouWCMAPI.validateXSS(texto puro) antes de ir ao DOM → verconventions.md. - XSS via
innerHTML: preferirtextContent; só usarinnerHTMLcom conteúdo já sanitizado → verconventions.md. - Injeção via
eval: nuncaeval()/new Function()com dados dinâmicos → verconventions.md. - Escape de template: dados dinâmicos escapados em FreeMarker (
${value?html},${value?js_string}) → verconventions.md. - Sanitização na entrada e na exibição (A03): validar tanto em POST/PUT quanto em GET → ver
conventions.md. - Configuração insegura (A05): chamadas a endpoints internos via
WCMAPI/FLUIGC.ajax(token de sessão automático); semfetch/$.ajaxdireto → verconventions.md. - Exposição de dados sensíveis (A02): não embutir segredos/tokens no cliente; não logar dados sensíveis.
Escala de Severidade
Classifique cada achado em um destes níveis, considerando explorabilidade e impacto:
| Severidade | Critério | Exemplos típicos | |------------|----------|------------------| | Crítico | Vulnerabilidade explorável diretamente, com alto impacto | XSS por innerHTML com input não sanitizado; eval() sobre dados do usuário; segredo embutido no cliente | | Alto | Vulnerabilidade provável ou proteção ausente em fluxo de dados do usuário | FreeMarker sem escape em dado dinâmico; sanitização ausente na persistência (POST/PUT) | | Médio | Fraqueza que depende de condições, mas reduz a postura de segurança | Sanitização só na entrada, faltando na exibição; chamada interna via fetch direto | | Baixo | Endurecimento recomendado de baixo risco imediato | Log verboso de payload; falta de validação defensiva redundante |
Procedimento
- Mapear o fluxo de dados do usuário (origem → uso no DOM/persistência/exibição) no código revisado.
- Avaliar cada ponto contra as categorias OWASP aplicáveis: XSS/injeção (A03), exposição de dados (A02), configuração insegura (A05).
- Para cada vulnerabilidade, registrar um achado com localização, descrição, categoria OWASP, severidade e a regra de contexto correspondente (
conventions.md› Segurança). - Recomendar a correção usando apenas API pública (
DOMPurify.sanitize,WCMAPI.validateXSS, escape FreeMarker), apontando a skillfluig-validate-security. - Consolidar os achados ordenados do mais grave ao menos grave.
- Validar a revisão com o checklist abaixo antes de entregar.
Saída Esperada
Um relatório de revisão de segurança contendo:
- Resumo com a contagem de achados por severidade e a avaliação geral.
- Achados agrupados por severidade (crítico → baixo); cada um com localização, descrição, categoria OWASP, severidade e a regra de contexto referenciada.
- Recomendações acionáveis com API pública, indicando a skill
fluig-validate-security.
A skill não altera o código — apenas diagnostica e recomenda.
Exemplo de Uso
Trecho revisado e achado correspondente.
// Código revisado (trecho)
container.innerHTML = userInput; // entrada do usuário direto no DOM como HTML
## Achados
### 🔴 Crítico
- **A03 Injeção/XSS — linha 1:** `innerHTML` recebe `userInput` sem sanitização (XSS refletido/armazenado).
- Regra: `conventions.md` › Segurança (APIs públicas).
- Recomendação: usar `textContent` ou `DOMPurify.sanitize(userInput)` antes de inserir; `WCMAPI.validateXSS` para reduzir a texto puro. Ver skill `fluig-validate-security`.
Checklist de Validação
- [ ] O fluxo de dados do usuário foi mapeado (origem → DOM/persistência/exibição).
- [ ] Cada achado tem categoria OWASP e severidade atribuídas conforme a escala.
- [ ] Cada achado referencia a regra do
conventions.md› Segurança (com a seção). - [ ] As recomendações usam apenas API pública (
DOMPurify.sanitize,WCMAPI.validateXSS, escape FreeMarker). - [ ] O relatório está ordenado do mais grave ao menos grave e aponta a skill
fluig-validate-security. - [ ] A revisão não alterou o código — apenas diagnosticou e recomendou.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: totvs
- Source: totvs/fluig-agent-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.