Segurança Declarativa & Sandboxing
1. Abordagem Declarativa First
Para proteger os dados das campanhas e os mestres contra códigos maliciosos, o Adventure Keeper adota uma política estrita de extensibilidade primariamente declarativa:
- Proibição de Código JS Inseguro: Módulos de terceiros não executam código JavaScript arbitrário não inspecionado no contexto de autenticação do usuário.
- Validação Antecipada: Todos os componentes visuais são construídos a partir de primitivas padronizadas do Adventure Keeper (Design System) alimentadas pelos schemas declarativos.
2. Higienização e Prevenção de XSS
Quando um módulo manipula textos com suporte a formatação rica (HTML ou Markdown):
- Sanitização de HTML: Todo o conteúdo textual que aceita marcação é filtrado por rotinas de sanitização estritas (
DOMPurifyno frontend esanitizeVttContentno backend). - Tags Permitidas: Apenas elementos seguros de formatação (
<p>,<em>,<strong>,<ul>,<li>,<blockquote>,<code>) são aceitos. - Tags Bloqueadas: Tags
<script>,<iframe>,<embed>,<object>ou atributosonerror,onclicksão sumariamente expurgados antes da persistência.
3. Isolamento de Contexto & Cookies
- Os módulos operam sem acesso direto ao armazenamento local de autenticação (
localStorageou cookies__Host-ak_session). - Requisições externas iniciadas pela aplicação requerem autorização expressa e não compartilham tokens de sessão do usuário.
- Comunicações com APIs externas devem utilizar exclusivamente Personal Access Tokens (PAT) com escopos delimitados.