Fronteira de segurança local

As garantias do runtime local — loopback, cookies HttpOnly, CSRF, códigos de uso único — e suas limitações explícitas.

O objetivo de segurança do runtime local é impedir exposição da máquina/rede e impedir que identidade local escape para o Ecossistema.

Garantias

  • bind real em loopback;
  • Host e Origin limitados a localhost, 127.0.0.1 e ::1;
  • cabeçalhos de proxy recusados;
  • códigos independentes de navegador e automação/seed, aleatórios, curtos e consumidos uma vez;
  • segredo de sessão em cookie HttpOnly e somente hashes no banco;
  • logout revoga a sessão no backend e invalida cookies anteriores;
  • CSRF obrigatório nas mutações;
  • nenhum bearer local no bundle ou no localStorage;
  • nenhuma identidade operacional ou chamada silenciosa à plataforma;
  • operationalRequestHeaders falha com LOCAL_OPERATION_NOT_SUPPORTED;
  • produção, Kubernetes e bind externo falham fechado;
  • o contexto virtual local:tenant isola dados locais sem criar recurso na plataforma.

Secure é adicionado aos cookies quando OON_LOCAL_HTTPS=true; em HTTP loopback o cookie mantém HttpOnly e SameSite=Strict.

Limitações explícitas

Quem controla código, banco e relógio locais pode reiniciar ou alterar o prazo. Os 30 dias são uma regra de experiência, não licenciamento inviolável. Uma política remota futura pode afetar novas emissões/renovações, mas não revoga imediatamente sessão offline já emitida.

O que a conformance reprova

Código Padrão
LOCAL_FIXED_TOKEN DEV_TOKEN / VITE_DEV_TOKEN
LOCAL_PREDICTABLE_TOKEN credencial "dev-local"
LOCAL_BIND_EXTERNAL host: "0.0.0.0" ou "::" no servidor de desenvolvimento
FRONTEND_SECRET import.meta.env.*SECRET/PASSWORD/TOKEN/PRIVATE_KEY/API_KEY no bundle
FRONTEND_REMOTE_CODE import("https://…"), eval(, Function( no frontend
FRONTEND_SECURITY_GUARD enableRouteGuard: false / enablePermissionGate: false
FRONTEND_INTERNAL_IMPORT subpaths não públicos de oon-core-front
MONGOOSE_PATCH patch de protótipos do Mongoose
CENTRAL_CONFIG_BOUNDARY identidade/capabilities/auth declarados em central.config.js