Skip to content

Gilas Browser v0.1.4 (pré-lançamento)

Pre-release
Pre-release

Choose a tag to compare

@guilopes04 guilopes04 released this 17 Oct 23:43
· 23 commits to main since this release

Substituída pela v0.1.5. A v0.1.5 fecha os achados baixos desta versão e os da terceira auditoria independente. Use a v0.1.5.

Gilas Browser v0.1.4 (pré-lançamento), para Mac com Apple Silicon. App e .dmg assinados com Developer ID e notarizados pela Apple.

Pré-lançamento aprovado pelo crítico independente (3ª revisão, feita por CDP no app empacotado). Ele substitui a v0.1.3, que tinha um achado de gravidade alta (uma página podia abrir um pop-up e fazer a barra de endereço mostrar um endereço falso), corrigido aqui: não use a v0.1.3. Ainda não passou pela validação com teclas e mouse reais: use para testar, não como versão estável.

Abra o .dmg, arraste o Gilas Browser para Aplicativos e abra. O macOS não pede nada além de confirmar a abertura.

O que mudou desde a v0.1.3

Segurança (achados da segunda auditoria independente e das três revisões do crítico):

  • Barra de endereço falsa por pop-up: o pop-up aberto pela página nasce em branco e só mostra um endereço depois que a navegação confirma.
  • Nomes de site com letras de outras escritas (IDN): o campo de endereço só mostra Unicode quando a escrita do nome é a do domínio de topo (por exemplo, cirílico sob .ru). Nos demais casos mostra o nome em punycode, o que impede nomes parecidos com sites conhecidos. Letras latinas especiais só aparecem em Unicode sob o domínio do país que as usa. Marcas combinantes, símbolos e letras modificadoras ficam sempre em punycode. Antes de mostrar Unicode, o nome também é comparado com os sites mais visitados.
  • O ícone (favicon) baixado pelo app passa pela guarda de rede local.
  • Atrás de proxy, a guarda de rede local não consulta mais a DNS local.
  • "Limpar dados de navegação" apaga também o estado de rede, o HSTS, o cache de código e os dados de rastreamento do Chromium.
  • URL com usuário e senha não vai para o histórico, a sessão nem a paleta.
  • Os logs do app não levam mais a URL completa (pop-up bloqueado, download recusado).
  • Downloads: um gesto do usuário libera um download; o segundo pergunta se você permite vários arquivos. O nome do arquivo mantém a extensão, e "Abrir em outro app" atribui o pedido ao quadro que o fez.
  • Impressão e diálogos: window.print exige um clique, e a regra vale também em iframes vazios. alert e confirm respeitam o sandbox e o descarregamento da aba.
  • Links entregues pelo macOS: o app registrado para http e https abre o link que o sistema entrega.
  • O texto do pedido de rede local do macOS agora explica o motivo.
  • A documentação diz que NODE_OPTIONS é neutralizado pelo fuse do Electron, e não pela guarda da linha de comando.

Para testes: uma janela invisível e sem foco para validar o app por CDP sem atrapalhar quem usa o Mac. Só funciona onde a depuração já é permitida (--dev com perfil separado e keychain de mentira); não muda nada no uso normal.

Conferência deste build: 567 testes de unidade passam; scripts/confere-build.sh passa (assinatura, hardened runtime, entitlements mínimas, fuses, integridade do app.asar, Gatekeeper, Info.plist e abertura a partir do .dmg). O crítico testou 276 nomes de site no campo de endereço do build empacotado do mesmo código (commit 390fb42) e todos seguiram a regra.

Todo o resto da v0.1.3 continua: file:// fechado, fuses do Electron, entitlements mínimas, bloqueador de pop-ups, domínio sempre visível na barra, Buscar na página (⌘F, ⌘G, ⇧⌘G), sem telemetria.

Limites conhecidos

  • O tratamento de IDN é mais rígido que o do Chrome: um nome legítimo de outra escrita sob .com, .net e semelhantes aparece em punycode, mesmo sendo verdadeiro. O campo mostra o domínio real e a falha é para o lado seguro.
  • Quando a página não tem <title>, o título guardado (rótulo da aba depois de um erro de rede e linha do histórico da paleta) usa a formatação de nomes do Chromium, não a regra mais rígida do campo de endereço. Confie no campo de endereço, não no título. Já era assim desde a v0.1.0.
  • A impressão nativa ainda é possível depois de document.open() ou em shadow DOM declarativo; continua exigindo um clique.
  • O bloqueio do ponteiro (pointerLock) não mostra aviso.
  • Não há atualização automática: acompanhe a página de Releases.

Pendências

  • Validação com teclas e mouse reais da v0.1.4: em andamento.
  • Senhas do iCloud: aguardam a entitlement da Apple (pedido enviado).

SHA-256

aa72e8545717d351d20c99e717eb816b5ba24e9d4726543c8baa826b9e558e88  Gilas-Browser-0.1.4-arm64.dmg
25d40b49da1dd98ccefb5f0972716ae44154203bb556dc1977c6b4a833acb1a7  Gilas-Browser-0.1.4-arm64.zip