Repository navigation
Véu v0.2.0
Revisão de segurança.
Segurança
- Sessões do proxy separadas pela credencial do cliente: com outra chave de API, não dá mais para reutilizar o identificador de sessão de alguém e pedir ao modelo que repita os marcadores dela.
- A API REST só continua sessões que ela mesma criou (identificadores aleatórios), e as sessões da API e do proxy ficam em cofres separados.
- No localhost, o servidor só aceita o Host
localhost/127.0.0.1e recusa requisições comOriginde outro site, contra DNS rebinding e CSRF vindos de páginas abertas no navegador. - Fora do localhost, o servidor não inicia sem
VEU_TOKEN, a menos queVEU_PERMITIR_SEM_TOKEN=1. - Log de acesso do servidor HTTP desligado, porque a URL pode trazer a chave da API (
?key=do Gemini). - Cookies,
ReferereOrigindo cliente não são repassados ao provedor, e oSet-Cookiedo provedor não volta ao cliente. - Limite de tamanho do corpo (
limite_corpo_mb, padrão de 20 MB) e processamento fora do laço principal do servidor. - Erros de conexão com o provedor não repetem mais detalhes internos (como a URL com a chave).
- Cabeçalhos de segurança no playground (CSP,
frame-ancestors 'none') e escape de todos os rótulos exibidos. - O cofre salvo pela CLI é criado com permissão só para o dono (Linux e macOS).
- E-mails do modo sintético e dos exemplos usam domínios reservados (
example.com), para nunca inventar o endereço de alguém de verdade.
Corrigido
- A ligação de nomes parciais tinha custo quadrático: um texto de 1 MB levava cerca de 40 segundos e agora leva cerca de 3.
- Condição de corrida: duas requisições simultâneas na mesma sessão podiam receber o mesmo marcador para valores diferentes.
- JSON aninhado demais agora é recusado com erro 400 em vez de erro interno.
Alterado
POST /veu/v1/anonimizarcom umasessaoque não existe responde 404 em vez de criar a sessão.- Requisições
OPTIONSnão são mais repassadas ao provedor.