Skip to content

Security

Edgar Mesquita edited this page Jan 25, 2026 · 2 revisions

Segurança e Server Actions

O eQuantic.UI facilita a comunicação entre o cliente e o servidor através de Server Actions, ao mesmo tempo que garante que essa ponte seja segura por padrão.

⚡ Server Actions

Uma Server Action é um método C# definido num componente que pode ser invocado diretamente do browser. O compilador gera automaticamente a ponte de chamada (Fetch API) e o middleware do servidor resolve a execução.

Exemplo:

[ServerAction]
[Authorize(Roles = "Admin")]
public async Task<bool> DeleteUser(Guid userId) {
    // Lógica executada apenas no servidor
}

🛡️ Camadas de Proteção

1. Autorização (RBAC)

O eQuantic.UI suporta os atributos [Authorize] e [AllowAnonymous].

  • O ServerActionsMiddleware verifica se o utilizador atual tem as permissões necessárias antes de invocar o método.
  • Se a autorização falhar, o servidor retorna um erro 403 Forbidden ou 401 Unauthorized, bloqueando a execução da lógica de negócio.

2. Validação de Payload

Para prevenir ataques de injeção e excesso de consumo de recursos:

  • Tamanho Limite: O middleware impõe limites rigorosos no tamanho do corpo da requisição.
  • Whitelist de Tipos: A deserialização de argumentos é restrita a tipos conhecidos e seguros, prevenindo ataques de desserialização insegura.

3. Registro de Ações

Apenas métodos explicitamente marcados com [ServerAction] podem ser invocados. Não é possível chamar qualquer método público arbitrário via API, garantindo que a superfície de ataque seja controlada.

📡 Protocolo de Comunicação

A comunicação é feita via HTTP POST para o endpoint reservado /_equantic/action.

  • Payload: Contém o Action ID único e a lista de argumentos serializados.
  • Resposta: Retorna o objeto resultado ou um erro estruturado.

Clone this wiki locally