Pular para o conteúdo
Skillpedia
Segurança48 mil · #3055

frontend-mobile-security-xss-scan

Ajuda seu agente a encontrar falhas de segurança em códigos de sites. Ele procura por maneiras de proteger os dados dos usuários contra ataques.

O que ela faz

Esta ferramenta verifica seu código de programação web (como sites e aplicativos) em busca de falhas de segurança que podem permitir que invasores insiram código malicioso. Ela procura por maneiras inseguras de exibir informações que vêm dos usuários.

Quando usar

  • ✓Ao desenvolver um site ou aplicativo web.
  • ✓Antes de lançar uma nova funcionalidade.
  • ✓Após fazer alterações no código que lida com dados do usuário.

Exemplo do que pedir para a IA

“Verifique meu código em busca de vulnerabilidades de XSS.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/frontend-mobile-security-xss-scan/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/frontend-mobile-security-xss-scan/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta analisa seu código em busca de padrões conhecidos que podem ser explorados por ataques. Ela identifica onde informações do usuário podem ser inseridas de forma insegura, como em manipulações de HTML ou links.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill frontend-mobile-security-xss-scan

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/frontend-mobile-security-xss-scan/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Scanner de Vulnerabilidades XSS para Código Frontend

Você é um especialista em segurança frontend focado na detecção e prevenção de vulnerabilidades de Cross-Site Scripting (XSS). Analise código React, Vue, Angular e JavaScript puro para identificar pontos de injeção, manipulação insegura do DOM e sanitização inadequada.

Use esta habilidade quando

  • Trabalhar em tarefas ou fluxos de trabalho de scanner de vulnerabilidades XSS para código frontend
  • Precisar de orientação, melhores práticas ou checklists para scanner de vulnerabilidades XSS para código frontend

Não use esta habilidade quando

  • A tarefa não estiver relacionada a scanner de vulnerabilidades XSS para código frontend
  • Você precisar de um domínio ou ferramenta diferente fora deste escopo

Contexto

O usuário precisa de uma varredura abrangente de vulnerabilidades XSS para código do lado do cliente, identificando padrões perigosos como manipulação insegura de HTML, problemas de tratamento de URL e renderização inadequada de entrada do usuário. Concentre-se na detecção contextual e em padrões de segurança específicos do framework.

Requisitos

$ARGUMENTS

Instruções

1. Detecção de Vulnerabilidades XSS

Varra a base de código em busca de vulnerabilidades XSS usando análise estática:

interface XSSFinding {
  file: string;
  line: number;
  severity: 'critical' | 'high' | 'medium' | 'low';
  type: string;
  vulnerable_code: string;
  description: string;
  fix: string;
  cwe: string;
}

class XSSScanner {
  private vulnerablePatterns = [
    'innerHTML', 'outerHTML', 'document.write',
    'insertAdjacentHTML', 'location.href', 'window.open'
  ];

  async scanDirectory(path: string): Promise<XSSFinding[]> {
    const files = await this.findJavaScriptFiles(path);
    const findings: XSSFinding[] = [];

    for (const file of files) {
      const content = await fs.readFile(file, 'utf-8');
      findings.push(...this.scanFile(file, content));
    }

    return findings;
  }

  scanFile(filePath: string, content: string): XSSFinding[] {
    const findings: XSSFinding[] = [];

    findings.push(...this.detectHTMLManipulation(filePath, content));
    findings.push(...this.detectReactVulnerabilities(filePath, content));
    findings.push(...this.detectURLVulnerabilities(filePath, content));
    findings.push(...this.detectEventHandlerIssues(filePath, content));

    return findings;
  }

  detectHTMLManipulation(file: string, content: string): XSSFinding[] {
    const findings: XSSFinding[] = [];
    const lines = content.split('\n');

    lines.forEach((line, index) => {
      if (line.includes('innerHTML') && this.hasUserInput(line)) {
        findings.push({
          file,
          line: index + 1,
          severity: 'critical',
          type: 'Manipulação insegura de HTML',
          vulnerable_code: line.trim(),
          description: 'Dados controlados pelo usuário na manipulação de HTML criam risco de XSS',
          fix: 'Use textContent para texto puro ou sanitize com a biblioteca DOMPurify',
          cwe: 'CWE-79'
        });
      }
    });

    return findings;
  }

  detectReactVulnerabilities(file: string, content: string): XSSFinding[] {
    const findings: XSSFinding[] = [];
    const lines = content.split('\n');

    lines.forEach((line, index) => {
      if (line.includes('dangerously') && !this.hasSanitization(content)) {
        findings.push({
          file,
          line: index + 1,
          severity: 'high',
          type: 'Renderização insegura de HTML no React',
          vulnerable_code: line.trim(),
          description: 'HTML não sanitizado em um componente React cria vulnerabilidade XSS',
          fix: 'Aplique DOMPurify.sanitize() antes de renderizar ou use alternativas seguras',
          cwe: 'CWE-79'
        });
      }
    });

    return findings;
  }

  detectURLVulnerabilities(file: string, content: string): XSSFinding[] {
    const findings: XSSFinding[] = [];
    const lines = content.split('\n');

    lines.forEach((line, index) => {
      if (line.includes('location.') && this.hasUserInput(line)) {
        findings.push({
          file,
          line: index + 1,
          severity: 'high',
          type: 'Injeção de URL',
          vulnerable_code: line.trim(),
          description: 'Entrada do usuário na atribuição de URL pode executar código malicioso',
          fix: 'Valide URLs e force apenas os protocolos http/https',
          cwe: 'CWE-79'
        });
      }
    });

    return findings;
  }

  hasUserInput(line: string): boolean {
    const indicators = ['props', 'state', 'params', 'query', 'input', 'formData'];
    return indicators.some(indicator => line.includes(indicator));
  }


…
Perguntas frequentes

O que é XSS?

XSS (Cross-Site Scripting) é um tipo de ataque onde um invasor injeta scripts maliciosos no seu site, que são então executados pelos navegadores dos seus visitantes.

O que é 'sanitização'?

Sanitização é o processo de limpar ou remover dados potencialmente perigosos de uma entrada do usuário antes de usá-los no seu código, prevenindo ataques.

Quais linguagens de programação ela verifica?

Ela verifica JavaScript (incluindo frameworks populares como React, Vue e Angular) usado no desenvolvimento frontend.

Detalhes

Descrição original do autor

Inspect frontend code for XSS injection points, unsafe DOM manipulation, and missing sanitization.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3055
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas