django-access-review
Faz seu agente verificar se o acesso a dados em um sistema chamado Django está seguro. É útil para encontrar falhas que permitam acesso indevido a informações.
O que ela faz
Esta ferramenta ajuda a verificar se usuários não autorizados podem acessar, modificar ou excluir dados de outros usuários em sistemas feitos com Django ou DRF. Ela investiga como as permissões funcionam no código para encontrar falhas de segurança.
Quando usar
- ✓Ao revisar o código de segurança de um sistema Django/DRF.
- ✓Quando se suspeita que um usuário pode ver ou alterar dados de outro.
- ✓Para garantir que apenas pessoas autorizadas acessem informações específicas.
Exemplo do que pedir para a IA
“Verifique se um usuário comum pode ver os dados de outro usuário no sistema de documentos.”
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
Mensagem pronta para colar
Como funciona
A ferramenta analisa o código para entender como as permissões são verificadas, rastreando o caminho dos dados e procurando por pontos onde o acesso pode ser indevido. Ela foca em entender a lógica específica do sistema em vez de procurar por padrões de erro genéricos.
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 django-access-reviewOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/django-access-review/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Revisão de Controle de Acesso e IDOR no Django
Encontre vulnerabilidades de controle de acesso investigando como a base de código responde a uma pergunta:
O Usuário A pode acessar, modificar ou excluir os dados do Usuário B?
Quando Usar
- Você precisa revisar o código Django ou DRF em busca de lacunas de controle de acesso, risco de IDOR ou falhas de autorização em nível de objeto.
- A tarefa envolve confirmar se um usuário pode acessar, modificar ou excluir os dados de outro usuário.
- Você deseja uma revisão de autorização orientada por investigação em vez de correspondência genérica de padrões.
Filosofia: Investigação em Vez de Correspondência de Padrões
NÃO escaneie por padrões vulneráveis predefinidos. Em vez disso:
- Entenda como a autorização funciona NESTA base de código
- Faça perguntas sobre fluxos de dados específicos
- Rastreie o código para encontrar onde (ou se) as verificações de acesso ocorrem
- Relate apenas o que você confirmou por meio de investigação
Cada base de código implementa a autorização de maneira diferente. Seu trabalho é entender essa implementação específica e, em seguida, encontrar lacunas.
Fase 1: Entenda o Modelo de Autorização
Antes de procurar por bugs, responda a estas perguntas sobre a base de código:
Como a autorização é aplicada?
Pesquise a base de código para encontrar:
□ Where are permission checks implemented?
- Decorators? (@login_required, @permission_required, custom?)
- Middleware? (TenantMiddleware, AuthorizationMiddleware?)
- Base classes? (BaseAPIView, TenantScopedViewSet?)
- Permission classes? (DRF permission_classes?)
- Custom mixins? (OwnershipMixin, TenantMixin?)
□ How are queries scoped?
- Custom managers? (TenantManager, UserScopedManager?)
- get_queryset() overrides?
- Middleware that sets query context?
□ What's the ownership model?
- Single user ownership? (document.owner_id)
- Organization/tenant ownership? (document.organization_id)
- Hierarchical? (org -> team -> user -> resource)
- Role-based within context? (org admin vs member)
Comandos de Investigação
# Find how auth is typically done
grep -rn "permission_classes\|@login_required\|@permission_required" --include="*.py" | head -20
# Find base classes that views inherit from
grep -rn "class Base.*View\|class.*Mixin.*:" --include="*.py" | head -20
# Find custom managers
grep -rn "class.*Manager\|def get_queryset" --include="*.py" | head -20
# Find ownership fields on models
grep -rn "owner\|user_id\|organization\|tenant" --include="models.py" | head -30
Não prossiga até que você entenda o modelo de autorização.
Fase 2: Mapeie a Superfície de Ataque
Identifique endpoints que lidam com dados específicos do usuário:
Que recursos existem?
□ What models contain user data?
□ Which have ownership fields (owner_id, user_id, organization_id)?
□ Which are accessed via ID in URLs or request bodies?
Que operações são expostas?
Para cada recurso, mapeie:
- Liste endpoints - quais dados são retornados?
- Detalhe/recupere endpoints - como o objeto é buscado?
- Crie endpoints - quem define o proprietário?
- Atualize endpoints - os usuários podem modificar os dados de outros?
- Exclua endpoints - os usuários podem excluir os dados de outros?
- Ações personalizadas - o que elas acessam?
Fase 3: Faça Perguntas e Investigue
Para cada endpoint que lida com dados do usuário, pergunte:
A Pergunta Central
"Se eu sou o Usuário A e sei o ID do recurso do Usuário B, posso acessá-lo?"
Rastreie o código para responder a isso:
1. Where does the resource ID enter the system?
- URL path: /api/documents/{id}/
- Query param: ?document_id=123
- Request body: {"document_id": 123}
2. Where is that ID used to fetch data?
- Find the ORM query or database call
3. Between (1) and (2), what checks exist?
- Is the query scoped to current user?
- Is there an explicit ownership check?
- Is there a permission check on the object?
- Does a base class or mixin enforce access?
4. If you can't find a check, is there one you missed?
- Check parent classes
- Check middleware
- Check managers
- Check decorators at URL level
Perguntas de Acompanhamento
□ Para endpoints de lista: A consulta filtra para os dados do usuário ou retorna tudo?
□ Para endpoints de criação: Quem define o proprietário - o servidor ou a solicitação?
□ Para operações em massa: Elas são restritas aos dados do usuário?
□ Para recursos relacionados: Se posso acessar um documento, posso acessar seus comentários?
E se o documento pertencer a outra pessoa?
…
Perguntas frequentes
O que é IDOR?
IDOR significa 'Insecure Direct Object Reference'. É uma falha de segurança onde um usuário pode acessar recursos (como dados ou arquivos) que ele não deveria ter permissão para ver, simplesmente alterando um identificador (como um número) na URL ou na requisição.
Como essa ferramenta encontra falhas?
Ela não procura por erros automaticamente. Em vez disso, ela ajuda você a investigar manualmente como o sistema verifica quem pode fazer o quê com os dados, seguindo o fluxo do código para encontrar onde as verificações de acesso podem estar faltando ou falhando.
Preciso saber programar em Django para usar?
É útil ter algum conhecimento básico de como o Django funciona, especialmente sobre como ele lida com dados e permissões. A ferramenta guia a investigação, mas a análise final do código é necessária.
Detalhes
Descrição original do autor
Use when reviewing Django or DRF access control: trace authorization flows, IDOR risks, object permissions, query scoping and tenant isolation before proposing a verified fix.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2854
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC