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;
HosteOriginlimitados alocalhost,127.0.0.1e::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
HttpOnlye 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;
operationalRequestHeadersfalha comLOCAL_OPERATION_NOT_SUPPORTED;- produção, Kubernetes e bind externo falham fechado;
- o contexto virtual
local:tenantisola 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 |