specsfy-specialist-application-security
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSegurança de aplicações
应用程序安全
Quando usar
适用场景
- Acionar quando a mudança introduz ou toca trust boundary, identidade, entrada externa (upload, URL, query, deserialize) ou dado sensível.
- Acionar também antes de desenhar uma feature com superfície de ataque nova (novo endpoint público, nova integração, novo tipo de usuário) para fazer threat modeling preventivo.
- Não acionar como substituto de revisão de credenciais de pipeline/deploy —
usar para isso; aqui o foco é a aplicação e seus dados, não a esteira de entrega.
$specsfy-specialist-delivery-engineering - Combinar com /
$specsfy-specialist-postgresquando o risco envolve modelagem de acesso a dado por linha ou tenant.$specsfy-specialist-supabase
- 当变更引入或涉及trust boundaries、身份、外部输入(上传、URL、查询、反序列化)或敏感数据时触发。
- 当设计具有新攻击面的功能(新的公共端点、新集成、新用户类型)时,也可提前触发以开展预防性threat modeling。
- 请勿将其作为部署流水线/凭证审查的替代方案——此类场景请使用;本技能的重点是应用程序及其数据,而非交付流水线。
$specsfy-specialist-delivery-engineering - 当风险涉及按行或租户的数据访问建模时,请结合/
$specsfy-specialist-postgres使用。$specsfy-specialist-supabase
Fluxo
流程
- Mapear ativos, atores, trust boundaries, entradas externas e efeitos (o que muda de estado) antes de pensar em controle.
- Definir ameaças plausíveis e seu impacto real antes de escolher controles — não implementar defesa para uma ameaça que não existe no contexto do sistema.
- Verificar autenticação, autorização por objeto (não só por rota) e separação de tenants em toda operação que lê ou muta dado.
- Validar toda entrada pelo tipo, tamanho e destino esperado; normalizar saída conforme o contexto de renderização; proteger operações mutáveis contra replay e CSRF quando aplicável.
- Revisar gestão de secrets, criptografia em trânsito e em repouso, ciclo de vida de sessão, dependências vulneráveis e configuração de produção.
- Materializar testes positivos (fluxo autorizado funciona) e negativos (fluxo não autorizado falha) nos boundaries críticos identificados.
- Registrar risco residual, owner, sinal de observabilidade associado e plano de resposta — nenhum sistema fica "100% seguro", apenas com risco conhecido e monitorado.
- 在考虑控制措施之前,先映射资产、参与者、trust boundaries、外部输入及影响(状态变更内容)。
- 在选择控制措施之前,先定义合理的威胁及其实际影响——不要针对系统环境中不存在的威胁实施防御。
- 在所有读取或变更数据的操作中,检查身份验证、基于对象的授权(不仅限于路由)以及租户隔离。
- 根据预期的类型、大小和目标验证所有输入;根据渲染上下文规范化输出;在适用时保护可变操作免受重放攻击和CSRF攻击。
- 审查secrets管理、传输中及静态数据加密、会话生命周期、易受攻击的依赖项以及生产环境配置。
- 在已识别的关键边界处落实正向测试(授权流程正常运行)和反向测试(未授权流程执行失败)。
- 记录剩余风险、负责人、相关可观测信号及响应计划——没有系统是“100%安全”的,只有已知且受监控的风险。
Padrões
规范
- Negar por padrão e conceder o menor privilégio necessário para cada identidade e operação.
- Autorizar no servidor em toda operação e em todo objeto acessado — nunca confiar em uma verificação apenas client-side ou em um ID de objeto vindo do cliente sem revalidar propriedade/tenant.
- Tratar upload de arquivo, URL fornecida pelo usuário, template renderizado com dado externo, query dinâmica e deserialização de dado externo como entradas hostis por padrão.
- Não implementar criptografia própria; usar primitivas e bibliotecas estabelecidas. Nunca logar segredo, token, senha ou dado sensível, mesmo em ambiente de debug.
- Rotacionar credenciais periodicamente e preferir identidade temporária (tokens de curta duração, STS/OIDC) a segredo estático de longa duração.
- Mitigar abuso com limites por ator e por recurso (rate limit por usuário/ API key/tenant), não apenas por IP — um IP compartilhado (NAT, proxy) penaliza usuários legítimos e um atacante distribuído contorna limite só por IP.
- Ao corrigir uma vulnerabilidade, corrigir a causa raiz e adicionar teste de regressão, sem divulgar detalhe de exploração além do necessário para quem precisa corrigir ou validar.
- 默认拒绝,为每个身份和操作授予所需的最小权限。
- 在所有操作和所有访问的对象上进行服务器端授权——永远不要仅依赖客户端验证,或在未重新验证所有权/租户的情况下信任来自客户端的对象ID。
- 默认将文件上传、用户提供的URL、包含外部数据的渲染模板、动态查询及外部数据反序列化视为恶意输入。
- 不要自行实现加密;使用成熟的原语和库。永远不要记录secrets、令牌、密码或敏感数据,即使在调试环境中也不行。
- 定期轮换凭证,优先使用临时身份(短期令牌、STS/OIDC)而非长期静态secrets。
- 通过按参与者和资源设置限制(按用户/API密钥/租户的速率限制)来缓解滥用,而不仅仅是按IP——共享IP(NAT、代理)会惩罚合法用户,分布式攻击者可以绕过仅基于IP的限制。
- 在修复漏洞时,修复根本原因并添加回归测试,除了需要修复或验证的人员外,不要泄露过多漏洞利用细节。
Antipadrões
反模式
- Verificar autorização apenas pela rota (protegido) sem verificar o objeto específico acessado dentro da rota: um usuário autenticado como tenant A consegue acessar
/admin/*de um tenant B só trocando o ID na URL (IDOR — Insecure Direct Object Reference)./api/orders/123 - Validar entrada só no client (JavaScript no navegador) sem revalidar no servidor: qualquer requisição direta à API contorna completamente a validação client-side.
- Confiar em ou extensão de arquivo declarados pelo cliente para decidir como processar um upload: permite disfarçar um arquivo malicioso como um tipo inofensivo.
Content-Type - Guardar segredo de aplicação (chave de API, senha de banco) em variável de ambiente sem controle de acesso ao processo/log, ou logar o payload completo de uma requisição que contém token de autenticação — o segredo vaza por um canal indireto mesmo com o "cofre" correto na origem.
- Anunciar "sistema seguro" ou "vulnerabilidade corrigida" sem teste negativo específico comprovando que o vetor original não funciona mais.
- 仅通过路由验证授权(如保护),而不检查路由内访问的特定对象:租户A的认证用户只需更换URL中的ID,即可访问租户B的
/admin/*(IDOR——Insecure Direct Object Reference)。/api/orders/123 - 仅在客户端(浏览器中的JavaScript)验证输入,而不在服务器端重新验证:任何直接向API发起的请求都可以完全绕过客户端验证。
- 依赖客户端声明的或文件扩展名来决定如何处理上传:允许将恶意文件伪装成无害类型。
Content-Type - 在没有进程/日志访问控制的环境变量中存储应用程序secrets(API密钥、数据库密码),或记录包含身份验证令牌的完整请求 payload——即使源头使用了正确的“保险箱”,secrets也会通过间接渠道泄露。
- 在没有具体反向测试证明原始攻击向量已失效的情况下,宣称“系统安全”或“漏洞已修复”。
Validação
验证
- Casos de teste negativos: acesso sem autenticação, com identidade errada, com tenant errado e replay de uma requisição já processada — todos devem falhar de forma controlada.
- Análise de dependências vulneráveis e varredura de secrets vazados com as ferramentas já adotadas pelo projeto, rodada como parte do fluxo normal, não apenas manualmente antes de um release grande.
- Configuração segura de produção: headers de segurança (ex.:
,
Content-Security-Policy), atributos de cookie (Strict-Transport-Security,HttpOnly,Secure) e política de CORS restrita à origem realmente necessária.SameSite - Evidência concreta de cada controle reivindicado e do risco residual que permanece — nunca declarar algo "seguro" em linguagem absoluta sem o teste que comprova.
- 反向测试用例:未认证访问、错误身份访问、错误租户访问以及重放已处理的请求——所有这些都应受控失败。
- 使用项目已采用的工具进行易受攻击的依赖项分析和泄露secrets扫描,作为常规流程的一部分运行,而不仅仅是在大型发布前手动执行。
- 生产环境安全配置:安全头(如、
Content-Security-Policy)、Cookie属性(Strict-Transport-Security、HttpOnly、Secure)以及严格限制在实际需要的源的CORS策略。SameSite - 每个声称的控制措施和剩余风险都要有具体证据——永远不要在没有测试证明的情况下用绝对语言宣称某物“安全”。
Skills relacionadas
相关技能
- e
$specsfy-specialist-ansibleimplementam hardening de host, container e runtime; esta skill define ameaça, privilégio e controle que a configuração precisa provar.$specsfy-specialist-docker - ,
$specsfy-specialist-laravele$specsfy-specialist-nextjsimplementam superfícies de aplicação; autorização, validação server-side e exposição de dados permanecem aqui.$specsfy-specialist-shadcn-ui - aplica a revisão ampla e
$specsfy-specialist-code-reviewregistra sinais de abuso sem vazar dados sensíveis.$specsfy-specialist-observability - e
$specsfy-specialist-postgrespara modelagem de autorização por linha/tenant no nível de dado (RLS, constraints).$specsfy-specialist-supabase - para hardening de credenciais de pipeline, assinatura de artefato e supply chain.
$specsfy-specialist-delivery-engineering - quando o risco nasce do desenho do contrato de API (verbos, versionamento, exposição de campo sensível).
$specsfy-specialist-web-api-design
Leia references/standards.md para checklist de
threat modeling por boundary, ASVS, segurança de API e supply chain, com
fontes primárias.
- 和
$specsfy-specialist-ansible实现主机、容器及运行时的加固;本技能定义了配置需要满足的威胁、权限及控制要求。$specsfy-specialist-docker - 、
$specsfy-specialist-laravel和$specsfy-specialist-nextjs实现应用程序界面;授权、服务器端验证及数据暴露相关内容仍归本技能负责。$specsfy-specialist-shadcn-ui - 进行全面审查,
$specsfy-specialist-code-review记录滥用信号而不泄露敏感数据。$specsfy-specialist-observability - 和
$specsfy-specialist-postgres用于在数据层面按行/租户进行授权建模(RLS、约束)。$specsfy-specialist-supabase - 用于部署流水线凭证加固、工件签名及供应链安全。
$specsfy-specialist-delivery-engineering - 适用于风险源于API契约设计(动词、版本控制、敏感字段暴露)的场景。
$specsfy-specialist-web-api-design
阅读references/standards.md获取按边界划分的threat modeling清单、ASVS、API安全及供应链安全相关内容,均来自原始来源。