Second Brain

Segurança — D2U.NET

D2U.NET · Arquitetura: Arquitetura · Review legado: Code-Review-Fluxos-Externos

Padrão obrigatório para escrever código. Todo PR deve passar o checklist §20.

Documento master (repo)

Ficheiro Conteúdo
C:\Projetos\D2U.NET\D2U.NET\d2u.net\Docs_New\security\project-security-standards.md Base Enneal (§1–26) + perfil D2U §27
docs_New/security/README.md Índice pasta segurança
ProjectSecurity_Generic.md (raiz repo) Template genérico reutilizável Enneal

Origem: ProjectSecurity_Generic.md copiado para docs_New/security/ e especializado para D2U.


Placeholders D2U.NET

Placeholder Valor
{PROJECT_NAME} D2U.NET / Dictate2Us
{APP_COOKIE_PREFIX} d2u
{PRIMARY_DOMAIN} {company}.dictate2us.com
{PAYMENT_PROVIDER} Stripe (+ RealEx/PayPal legacy — avaliar)
{TENANT_MODEL} Multi-tenant (CompanyId)
{DB_ENGINE} PostgreSQL 16 (schema d2u) — ver Base-de-Dados
{DEPLOY_TARGET} Kestrel/IIS + D2U.Workers

Regras rápidas (não negociáveis)

  1. Zero secrets in repo — Key Vault, User Secrets, env vars
  2. Multi-tenantCompanyId em queries + testes cross-company
  3. Fail secure — negar por defeito
  4. Server-side validation — FluentValidation em todo input
  5. CSRF — antiforgery em POST Razor Pages
  6. CSP + nonces — sem unsafe-inline, sem handlers inline
  7. Headers HTTP — HSTS, nosniff, DENY frame, CSP (§3 doc master)
  8. Upload — allowlist, GUID interno, fora de wwwroot, auth no download
  9. Pagamentos — webhook assinado, idempotente; nunca confirmar por redirect
  10. Logs — sem passwords, API keys, PHI desnecessário

Dívida legado — não repetir

Legado Java Problema Regra .NET
JobHandler XML-RPC API key hardcoded X-D2U-Api-Key em vault
JobXMLFileTransfer FTP password no source IOptions<VendorFtpOptions>
DWR crossDomainSessionSecurity=false CORS allowlist
Sessão 360 min Janela longa Revisar cookie max 8h sliding
BlogTalk Sem rate limit Rate limit + HTTPS

Detalhe: Code-Review-Fluxos-Externos


Policies ASP.NET (Onda 1 + authZ 2026-08)

Policy Uso Java
RequireMedTransUser Área MedTrans authenticated
RequireAdmin Admin company Administrator/Supervisor/Director
RequireSuperUser /SuperUser/* SuperUser
RequireContractor Jobs contractor ContractorAdministrator
CanManageClients CRUD clients + ViewOnly canManageClient / canViewClient
CanManageStaff Staff/MRA/Managers + MfaManagement canManageStaff / canViewUsers
CanManageJobs canEditJob \|\| canDeleteJob (não usar em Delete) composto
CanEditJob Jobs/Edit canEditJob
CanDeleteJob Jobs/Delete canDeleteJob
CanSplitJobs Jobs/Split canSplitJobs
CanCreateNewJob Create job canCreateNewJob
CanViewReports Relatórios report flags

Bugs fechados: AuthZ-Bugs-2026-08-01. Visão homolog: Docs_New/operations/dual-run-overview.md. | CanAccessOutsideReport | Flow 22 | | CanManageIntegrations | SpeechLive, FTP |

Ver §27 em project-security-standards.md.


Integrações — requisitos segurança

Integração Auth Webhook / notas
Stripe secret key vault /webhooks/stripe — assinatura
RealEx env /webhooks/realex — avaliar sunset
SpeechLive SPS API key rate limit
XML-RPC BlogTalk API key header substituir hardcoded
HTTP POST parceiros API key não portar HttpPostListener
Mobile API session validar company
Vendor FTP vault per vendor Winscribe/MediaHawk/DialDictate/BigHand
Mail/FTP ingress SMTP/IMAP secrets não logar PHI

Cookies D2U (Onda 1 — Program.cs)

// Auth: d2u.auth — HttpOnly, Secure, SameSite=Lax, max 8h sliding
// CSRF: d2u.csrf — SameSite=Strict
// Prefixo: {APP_COOKIE_PREFIX} = d2u

Spec: §5–6 em project-security-standards.md + docs_New/architecture/authentication.md


PR checklist (resumo §20)

Obrigatório em todo PR

  • Sem segredos commitados
  • Inputs validados server-side
  • Auth + policy em endpoints sensíveis
  • CompanyId / ownership validado
  • POST Razor com antiforgery
  • Sem @Html.Raw(userInput)
  • Sem SQL concatenado
  • Logs sem dados sensíveis

Integrações / pagamentos

  • Webhook com assinatura + idempotência
  • Upload com allowlist + path seguro
  • Teste cross-tenant se tocar dados

Checklist completo: §20–22 em project-security-standards.md


Onde aplicar no roadmap

Onda Actividades segurança
1 Headers middleware, cookies, CSRF, policies base
4 Stripe webhook §13
6 API keys integrações, rate limit XML-RPC
9 Hardening completo, audit log, scans CI
10 Testes segurança §22, ZAP stage

Ver Roadmap


Referências

  • OWASP Top 10, ASVS
  • Microsoft ASP.NET Core Security
  • Stripe Security Best Practices
  • Repo: docs_New/security/project-security-standards.md (documento completo ~1500 linhas)