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

cc-skill-security-review

Garante que todo o código siga as melhores práticas de segurança. Identifica possíveis falhas para proteger o sistema contra ataques e acessos não autorizados.

O que ela faz

Esta ferramenta verifica seu código para garantir que ele siga as melhores práticas de segurança e identifica possíveis pontos fracos. Ela ajuda a proteger seu aplicativo contra ataques.

Quando usar

  • ✓Ao implementar sistemas de login e permissão.
  • ✓Ao lidar com informações que os usuários enviam.
  • ✓Ao criar novas formas de comunicação com outros sistemas.

Exemplo do que pedir para a IA

“Revise meu código para garantir que ele está seguro contra hackers.”

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/cc-skill-security-review/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/cc-skill-security-review/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 erros comuns de segurança, como senhas expostas ou formas fáceis de invadir. Ela compara seu código com listas de verificação de segurança para encontrar problemas.

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 cc-skill-security-review

Ou baixe só o arquivo:

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

Habilidade de Revisão de Segurança

Esta habilidade garante que todo o código siga as melhores práticas de segurança e identifica vulnerabilidades potenciais.

Guia Detalhado

Leia o guia detalhado antes de executar esta habilidade. Ele retém o procedimento completo e o material de referência. Trate seus requisitos de segurança, pré-requisitos e validação como obrigatórios. Para trabalho focado, carregue as seções relevantes; para trabalho de ponta a ponta, leia o guia completamente.

Quando Usar

  • Implementando autenticação ou autorização
  • Lidando com entrada do usuário ou uploads de arquivos
  • Criando novos endpoints de API
  • Trabalhando com segredos ou credenciais
  • Implementando funcionalidades de pagamento
  • Armazenando ou transmitindo dados sensíveis
  • Integrando APIs de terceiros

Checklist de Segurança

1. Gerenciamento de Segredos

❌ NUNCA Faça Isso

const leakedToken = "[redacted API key]"  // Hardcoded secret
const dbCredential = "[redacted password]" // In source code

✅ SEMPRE Faça Isso

const apiKey = process.env.OPENAI_API_KEY
const dbUrl = process.env.DATABASE_URL

// Verify secrets exist
if (!apiKey) {
  throw new Error('OPENAI_API_KEY not configured')
}

Passos de Verificação

  • Sem chaves de API, tokens ou senhas codificadas diretamente
  • Todos os segredos em variáveis de ambiente
  • .env.local em .gitignore
  • Sem segredos no histórico do git
  • Segredos de produção na plataforma de hospedagem (Vercel, Railway)

2. Validação de Entrada

Sempre Valide a Entrada do Usuário

import { z } from 'zod'

// Define validation schema
const CreateUserSchema = z.object({
  email: z.string().email(),
  name: z.string().min(1).max(100),
  age: z.number().int().min(0).max(150)
})

// Validate before processing
export async function createUser(input: unknown) {
  try {
    const validated = CreateUserSchema.parse(input)
    return await db.users.create(validated)
  } catch (error) {
    if (error instanceof z.ZodError) {
      return { success: false, errors: error.errors }
    }
    throw error
  }
}

Validação de Upload de Arquivo

function validateFileUpload(file: File) {
  // Size check (5MB max)
  const maxSize = 5 * 1024 * 1024
  if (file.size > maxSize) {
    throw new Error('File too large (max 5MB)')
  }

  // Type check
  const allowedTypes = ['image/jpeg', 'image/png', 'image/gif']
  if (!allowedTypes.includes(file.type)) {
    throw new Error('Invalid file type')
  }

  // Extension check
  const allowedExtensions = ['.jpg', '.jpeg', '.png', '.gif']
  const extension = file.name.toLowerCase().match(/\.[^.]+$/)?.[0]
  if (!extension || !allowedExtensions.includes(extension)) {
    throw new Error('Invalid file extension')
  }

  return true
}

Passos de Verificação

  • Todas as entradas do usuário validadas com esquemas
  • Uploads de arquivos restritos (tamanho, tipo, extensão)
  • Sem uso direto da entrada do usuário em consultas
  • Validação por lista branca (não lista negra)
  • Mensagens de erro não vazam informações sensíveis

3. Prevenção de Injeção de SQL

❌ NUNCA Concatene SQL

// DANGEROUS - SQL Injection vulnerability
const query = `SELECT * FROM users WHERE email = '${userEmail}'`
await db.query(query)

✅ SEMPRE Use Consultas Parametrizadas

// Safe - parameterized query
const { data } = await supabase
  .from('users')
  .select('*')
  .eq('email', userEmail)

// Or with raw SQL
await db.query(
  'SELECT * FROM users WHERE email = $1',
  [userEmail]
)

Passos de Verificação

  • Todas as consultas ao banco de dados usam consultas parametrizadas
  • Sem concatenação de strings em SQL
  • ORM/construtor de consultas usado corretamente
  • Consultas Supabase devidamente sanitizadas

4. Autenticação e Autorização

Tratamento de Token JWT

// ❌ WRONG: localStorage (vulnerable to XSS)
localStorage.setItem('token', token)

// ✅ CORRECT: httpOnly cookies
res.setHeader('Set-Cookie',
  `token=${token}; HttpOnly; Secure; SameSite=Strict; Max-Age=3600`)

Verificações de Autorização

export async function deleteUser(userId: string, requesterId: string) {
  // ALWAYS verify authorization first
  const requester = await db.users.findUnique({
    where: { id: requesterId }
  })

  if (requester.role !== 'admin') {
    return NextResponse.json(
      { error: 'Unauthorized' },
      { status: 403 }
    )
  }

  // Proceed with deletion
  await db.users.delete({ where: { id: userId } })
}

Segurança em Nível de Linha (Supabase)

-- Habilita RLS em todas as tabelas
ALTER TABLE users ENABLE ROW LEVEL SECURITY;


…
Perguntas frequentes

O que são 'vulnerabilidades'?

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

Por que não devo colocar senhas diretamente no código?

Colocar senhas diretamente no código é como deixar a chave de casa embaixo do tapete. Qualquer um que veja o código pode encontrar a senha e acessar seus sistemas.

O que é validação de entrada?

É verificar se as informações que os usuários enviam (como em um formulário) estão corretas e seguras antes de usá-las, para evitar que enviem algo perigoso.

Detalhes

Descrição original do autor

This skill ensures all code follows security best practices and identifies potential vulnerabilities. Use when implementing authentication or authorization, handling user input or file uploads, or creating new API endpoints.

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas