Pular para o conteúdo
Skillpedia
Diversos48 mil · #4158

sharp-edges

sharp-edges

O que ela faz

Esta ferramenta analisa códigos, configurações ou interfaces para encontrar pontos onde os desenvolvedores podem cometer erros de segurança sem perceber. Ela foca em "armadilhas" de design que tornam o caminho inseguro mais fácil do que o seguro.

Quando usar

  • ✓Ao revisar o design de uma nova API ou biblioteca.
  • ✓Ao auditar arquivos de configuração em busca de opções perigosas.
  • ✓Ao avaliar como uma biblioteca criptográfica é fácil ou difícil de usar corretamente.

Exemplo do que pedir para a IA

“Analise esta configuração de API para ver se há 'armadilhas' de segurança.”

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/sharp-edges/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/sharp-edges/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ela procura por padrões comuns em APIs e configurações que historicamente levaram a erros de segurança. Isso inclui coisas como permitir que desenvolvedores escolham algoritmos fracos, usar padrões inseguros ou ter opções que desabilitam a segurança facilmente.

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 sharp-edges

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/sharp-edges/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.

Suporte upstream incluído

Arquivos de suporte são incluídos em caminhos relativos à skill. Veja UPSTREAM-NOTICE.md para suas fontes fixadas, licenças, hashes e alterações de importação.


name: sharp-edges description: "Identifica APIs propensas a erros, configurações perigosas e designs que facilitam erros de segurança. Use ao revisar designs de API, esquemas de configuração, ergonomia de bibliotecas criptográficas ou ao avaliar se o código segue 'seguro por..."

Análise de Bordas Afiadas

Avalia se APIs, configurações e interfaces são resistentes ao uso indevido por desenvolvedores. Identifica designs onde o "caminho fácil" leva à insegurança.

Quando Usar

  • Revisando decisões de design de API ou biblioteca
  • Auditando esquemas de configuração para opções perigosas
  • Avaliando a ergonomia de APIs criptográficas
  • Avaliando interfaces de autenticação/autorização
  • Revisando qualquer código que exponha escolhas relevantes para segurança aos desenvolvedores

Quando NÃO Usar

  • Bugs de implementação (use revisão de código padrão)
  • Falhas na lógica de negócios (use análise específica do domínio)
  • Otimização de desempenho (preocupação diferente)

Princípio Central

O fosso do sucesso: O uso seguro deve ser o caminho de menor resistência. Se os desenvolvedores precisam entender criptografia, ler a documentação cuidadosamente ou lembrar regras especiais para evitar vulnerabilidades, a API falhou.

Racionalizações a Rejeitar

Racionalização Por que está Errada Ação Necessária
"Está documentado" Desenvolvedores não leem a documentação sob pressão de prazo Torne a escolha segura a opção padrão ou única
"Usuários avançados precisam de flexibilidade" Flexibilidade cria armadilhas; a maioria dos usos "avançados" é copiar e colar Forneça APIs de alto nível seguras; oculte primitivas
"É responsabilidade do desenvolvedor" Transferência de culpa; você projetou a armadilha Remova a armadilha ou torne-a impossível de usar indevidamente
"Ninguém faria isso de verdade" Desenvolvedores fazem tudo imaginável sob pressão Assuma confusão máxima do desenvolvedor
"É apenas uma opção de configuração" Configuração é código; configurações erradas vão para produção Valide configurações; rejeite combinações perigosas
"Precisamos de compatibilidade com versões anteriores" Padrões inseguros não podem ser mantidos; Deprecie ruidosamente; force a migração

Categorias de Bordas Afiadas

1. Armadilhas na Seleção de Algoritmo/Modo

APIs que permitem aos desenvolvedores escolher algoritmos convidam à escolha errada.

O Padrão JWT (exemplo canônico):

  • Cabeçalho especifica algoritmo: o atacante pode definir "alg": "none" para ignorar assinaturas
  • Confusão de algoritmo: chave pública RSA usada como segredo HMAC ao mudar de RS256 para HS256
  • Causa raiz: Permitir que entrada não confiável controle decisões críticas de segurança

Padrões de detecção:

  • Parâmetros de função como algorithm, mode, cipher, hash_type
  • Enums/strings selecionando primitivas criptográficas
  • Opções de configuração para mecanismos de segurança

Exemplo - PHP password_hash permitindo algoritmos fracos:

// DANGEROUS: allows crc32, md5, sha1
password_hash($password, PASSWORD_DEFAULT); // Good - no choice
hash($algorithm, $password); // BAD: accepts "crc32"

2. Padrões Perigosos

Padrões que são inseguros, ou valores zero/vazios que desativam a segurança.

O Padrão de Tempo de Vida do OTP:

# What happens when lifetime=0?
def verify_otp(code, lifetime=300):  # 300 seconds default
    if lifetime == 0:
        return True  # OOPS: 0 means "accept all"?
        # Or does it mean "expired immediately"?

Padrões de detecção:

  • Timeouts/tempos de vida que aceitam 0 (infinito? expiração imediata?)
  • Strings vazias que ignoram verificações
  • Valores nulos que pulam a validação
  • Padrões booleanos que desativam recursos de segurança
  • Valores negativos com semântica indefinida

Perguntas a fazer:

  • O que acontece com timeout=0? max_attempts=0? key=""?
  • O padrão é a opção mais segura?
  • Algum valor padrão pode desativar completamente a segurança?

3. APIs Primitivas vs. Semânticas

APIs que expõem bytes brutos em vez de tipos significativos convidam à confusão de tipos.

O Padrão Libsodium vs. Halite:

// Libsodium (primitives): bytes are bytes
sodium_crypto_box($message, $nonce, $keypair);
// Easy to: swap nonce/keypair, reuse nonces, use wrong key type

// Halite (semantic): types enforce correct usage
Crypto::seal($message, new EncryptionPublicKey($key));
// Wrong key type = type error, not silent failure

Padrões de detecção:

…

Perguntas frequentes

O que é uma 'armadilha de segurança' (footgun)?

É um recurso de design que parece útil, mas pode ser facilmente mal utilizado de uma forma que cause um problema de segurança, muitas vezes sem que o usuário perceba.

Por que a documentação não é suficiente?

Porque, sob pressão, os desenvolvedores muitas vezes não leem a documentação completa. A ferramenta foca em tornar o uso seguro o caminho mais fácil, em vez de depender apenas da leitura da documentação.

Isso encontra todos os bugs de segurança?

Não, esta ferramenta foca em problemas de design que levam a erros de segurança. Ela não encontra bugs de implementação (como erros de digitação) ou falhas na lógica de negócios.

Detalhes

Descrição original do autor

sharp-edges

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas