Pular para o conteúdo
Skillpedia
Segurança107 mil · #359

security-and-hardening

Protege seu código contra ataques e falhas de segurança. Garante que dados sensíveis estejam seguros e que o sistema seja confiável.

O que ela faz

Esta ferramenta ajuda a tornar seu código mais seguro, protegendo-o contra ataques e vazamentos de dados. Ela verifica se você está lidando com informações sensíveis e entradas de usuários de forma segura.

Quando usar

  • ✓Ao criar qualquer parte do seu programa que recebe informações de fora.
  • ✓Quando você precisa proteger senhas, dados pessoais ou informações de pagamento.
  • ✓Ao integrar seu programa com outros serviços ou APIs.

Exemplo do que pedir para a IA

“Como posso garantir que a entrada do usuário não cause problemas de segurança no meu código?”

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/addyosmani/agent-skills/blob/main/skills/security-and-hardening/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/addyosmani/agent-skills/blob/main/skills/security-and-hardening/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ela analisa como seu código lida com dados externos, como informações de usuários ou de outros sistemas. Em seguida, sugere práticas para evitar que esses dados sejam usados para atacar seu programa.

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 addyosmani/agent-skills --skill security-and-hardening

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/addyosmani/agent-skills/main/skills/security-and-hardening/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.

Segurança e Fortalecimento

Visão Geral

Práticas de desenvolvimento com foco em segurança para aplicações web. Trate toda entrada externa como hostil, todo segredo como sagrado e toda verificação de autorização como obrigatória. Segurança não é uma fase — é uma restrição em cada linha de código que toca dados do usuário, autenticação ou sistemas externos.

Quando Usar

  • Construindo qualquer coisa que aceite entrada do usuário
  • Implementando autenticação ou autorização
  • Armazenando ou transmitindo dados sensíveis
  • Integrando com APIs ou serviços externos
  • Adicionando uploads de arquivos, webhooks ou callbacks
  • Lidando com dados de pagamento ou PII (Informações Pessoais Identificáveis)

Processo: Modelo de Ameaças Primeiro

Controles aplicados sem um modelo de ameaças são suposições. Antes de fortalecer, gaste cinco minutos pensando como um atacante:

  1. Mapeie os limites de confiança. Onde dados não confiáveis cruzam para o seu sistema? Requisições HTTP, campos de formulário, uploads de arquivos, webhooks, APIs de terceiros, filas de mensagens e saída de LLMs — mais os valores locais que parecem internos porque o sistema operacional os entregou a você: linha de comando ou ambiente de outro processo, nomes de arquivos em um volume compartilhado, um caminho em uma carga de trabalho de job. A confiança segue quem escreveu um valor, não qual canal o entregou. Cada limite é uma superfície de ataque.
  2. Nomeie os ativos. O que vale a pena roubar ou quebrar? Credenciais, PII, dados de pagamento, ações de administrador, movimentação de dinheiro.
  3. Execute STRIDE sobre cada limite — uma lente rápida, não uma cerimônia:
Ameaça Pergunta Mitigação Típica
Spoofing (Falsificação) Alguém pode se passar por um usuário/serviço? Autenticação, verificação de assinatura
Tampering (Adulteração) Os dados podem ser alterados em trânsito ou em repouso? Verificações de integridade, consultas parametrizadas, HTTPS
Repudiation (Repúdio) Uma ação pode ser negada posteriormente? Registro de auditoria de eventos de segurança
Information disclosure (Divulgação de Informações) Os dados podem vazar? Criptografia, listas de permissão de campos, erros genéricos
Denial of service (Negação de Serviço) Pode ser sobrecarregado? Limitação de taxa, limites de tamanho de entrada, timeouts
Elevation of privilege (Elevação de Privilégio) Um usuário pode obter direitos que não deveria? Verificações de autorização, menor privilégio
  1. Escreva casos de abuso ao lado dos casos de uso. Para cada funcionalidade, pergunte "como eu usaria isso indevidamente?" — então faça disso seu primeiro teste.

Se você não consegue nomear os limites de confiança para uma funcionalidade, você não está pronto para protegê-la. Isso é OWASP A04: Design Inseguro — a maioria das violações começa no design, não no código.

O Sistema de Limites de Três Camadas

Sempre Fazer (Sem Exceções)

  • Valide toda entrada externa no limite do sistema (rotas de API, manipuladores de formulário)
  • Parametrize todas as consultas ao banco de dados — nunca concatene entrada do usuário em SQL
  • Codifique a saída para prevenir XSS (use o auto-escape do framework, não o ignore)
  • Use HTTPS para toda comunicação externa
  • Hache as senhas com bcrypt/scrypt/argon2 (nunca armazene em texto plano)
  • Defina cabeçalhos de segurança (CSP, HSTS, X-Frame-Options, X-Content-Type-Options)
  • Use cookies httpOnly, secure, sameSite para sessões
  • Execute a auditoria nativa do gerenciador de pacotes detectado contra o arquivo de bloqueio comprometido antes de cada lançamento

Perguntar Primeiro (Requer Aprovação Humana)

  • Adicionar novos fluxos de autenticação ou alterar a lógica de autenticação
  • Armazenar novas categorias de dados sensíveis (PII, informações de pagamento)
  • Adicionar novas integrações de serviços externos
  • Alterar a configuração do CORS
  • Adicionar manipuladores de upload de arquivos
  • Modificar a limitação de taxa ou throttling
  • Conceder permissões ou papéis elevados

Nunca Fazer

  • Nunca cometa segredos no controle de versão (chaves de API, senhas, tokens)
  • Nunca registre dados sensíveis (senhas, tokens, números completos de cartão de crédito)
  • Nunca confie na validação do lado do cliente como um limite de segurança
  • Nunca desative cabeçalhos de segurança por conveniência
  • Nunca use eval() ou innerHTML com dados fornecidos pelo usuário
  • Nunca armazene sessões em armazenamento acessível pelo cliente (localStorage para tokens de autenticação)
  • Nunca exponha stack traces ou detalhes de erro internos aos usuários

Controles de Fortalecimento

As regras abaixo são o fluxo de trabalho; uma implementação concreta de cada uma vive em references/hardening-patterns.md. Abra a seção que você precisa quando chegar a esse código, não antes.

Injeção, XSS e controle de acesso

  • Parametrize cada consulta. Nunca construa comandos SQL, NoSQL ou de shell a partir de strings de entrada.
  • Codifique a saída através do auto-escape do framework. Se HTML bruto for inevitável, sanitize primeiro com um sanitizador de lista de permissão.

…

Perguntas frequentes

O que são 'vulnerabilidades'?

São falhas no código que podem ser exploradas por pessoas mal-intencionadas para acessar informações, danificar o sistema ou obter controle.

O que significa 'tratar toda entrada externa como hostil'?

Significa que você deve sempre desconfiar de qualquer dado que venha de fora do seu programa (como o que um usuário digita) e verificar se ele é seguro antes de usá-lo.

Por que não devo armazenar senhas em texto simples?

Se alguém conseguir acesso ao seu banco de dados, as senhas em texto simples seriam imediatamente expostas. Armazenar senhas 'hasheadas' (transformadas em um código complexo) é muito mais seguro.

Detalhes

Descrição original do autor

Hardens code against vulnerabilities. Use when auditing an input handler for vulnerabilities, when handling user input, authentication, data storage, or external integrations, or when checking a login flow is safe against the OWASP Top Ten. Use when building any feature that accepts untrusted data, manages user sessions, or interacts with third-party services. Use when auditing dependencies for kn

repo: addyosmani/agent-skills

Popularidade

Estrelas no GitHub
107 mil
Posição no ranking
#359
Licença
MIT
Atualizada em
13/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas