Ideias & Insights

Explorando desenvolvimento AI-first, guardrails de código e a arquitetura da descartabilidade.

Suas dependências podem ler qualquer arquivo no disco. cap-std faz com que elas peçam permissão.

A biblioteca padrão do Rust concede autoridade de sistema de arquivos ambiente a toda dependência. cap-std a substitui por APIs baseadas em capabilities que forçam o código a provar que tem direito de acessar um caminho antes de abri-lo.

Qualquer crate na sua árvore de dependências pode abrir , escrever no seu diretório ou enumerar todos os arquivos do seu projeto. A biblioteca padrão do Rust…

O Seu Serviço É um Cúmplice Inadvertido: Como Funcionam os Ataques Confused Deputy

Um ataque confused deputy engana um serviço privilegiado a usar sua própria autoridade contra si mesmo. Veja como atacantes exploram a confiança implícita, e por que a capability-based security é a solução.

O seu serviço tem uma chave de API para o seu armazenamento em nuvem. Um utilizador envia um pedido. O seu serviço obedientemente escreve um ficheiro. O…

E se cada função tivesse que receber permissão em vez de assumi-la?

A maioria do código roda com autoridade ambiente: cada função pode tocar em tudo. A segurança baseada em capabilities inverte esse modelo ao forçar funções a receber permissões explícitas e limitadas.

Sua função tem acesso ao banco de dados, ao gateway de pagamento e ao log de auditoria simplesmente porque vive no mesmo processo. Se um atacante encontra um…

O compiler deve detectar casos de estado ausentes, não a sua equipa de QA

Adicionar um novo estado à sua máquina é fácil. Lembrar-se de atualizar todos os switch statements não é. Veja como fazer o TypeScript recusar a compilação quando se esquece de um caso.

As state machines começam limpas. Três valores, três branches do switch. Depois a lógica de retry adiciona um quarto estado. A falha parcial adiciona um…

Sim, Mas Seu Sistema de Tipos Precisa Saber O Que É Um Dólar

O TypeScript trata todos os números como idênticos. Veja como ensiná-lo a distinguir USD de EUR para que o compilador capture bugs de conversão de moeda antes que eles cheguem à produção.

Em 2022, uma grande plataforma fintech processou uma transferência em massa de 32.700.000,00. O valor estava armazenado como um simples. Um serviço downstream…

Um número não é apenas um número: como fazer o compiler detectar bugs de unidade

Passar milliseconds onde seconds eram esperados é um bug que passa em todos os testes. Veja como codificar unidades diretamente no sistema de tipos do TypeScript para que confusões falhem em tempo de compilação com zero custo em runtime.

Uma função pede um timeout em milliseconds. Você passa . Mais tarde, outra função pede um timeout em seconds. Você passa . Em algum lugar entre elas, você…