Ide & Wawasan

Mengeksplorasi pengembangan AI-first, coding guardrail, dan arsitektur untuk dibuang.

Dependensi Anda bisa membaca berkas apa pun di disk. cap-std membuat mereka meminta izin.

Standard library Rust memberikan otoritas filesystem ambient kepada setiap dependensi. cap-std menggantinya dengan API berbasis capability yang memaksa kode untuk membuktikan bahwa ia berhak mengakses suatu path sebelum membukanya.

Crate apa pun di pohon dependency Anda bisa membuka , menulis ke direktori Anda, atau menghitung setiap berkas di proyek Anda. Standard library Rust tidak…

Layanan Anda Adalah Kaki Tangan yang Tidak Menyadari: Cara Kerja Serangan Confused Deputy

Serangan confused deputy menipu layanan yang memiliki privilese untuk menggunakan otoritasnya melawan dirinya sendiri. Berikut cara penyerang mengeksploitasi kepercayaan implisit, dan mengapa capability-based security adalah solusinya.

Layanan Anda memiliki API key ke cloud storage. Seorang pengguna mengirimkan request. Layanan Anda dengan patuh menulis sebuah file. File tersebut mendarat di…

Bagaimana Jika Setiap Fungsi Harus Menerima Izin Alih-alih Menganggap Sudah Punya?

Sebagian besar kode berjalan dengan otoritas ambient: setiap fungsi dapat menyentuh segalanya. Keamanan berbasis kemampuan membalik model itu dengan memaksa fungsi untuk menerima izin eksplisit dan terbatas.

Fungsi Anda memiliki akses ke database, gateway pembayaran, dan log audit karena ia kebetulan berada dalam proses yang sama. Jika penyerang menemukan bug…

Berhenti Melempar Error yang Tidak Bisa Dilihat Type Checker Anda

Exception yang dilempar menyembunyikan jalur kegagalan dari sistem tipe Anda. Berikut mengapa pengembalian error secara eksplisit membuat kode Anda lebih jujur, dan cara mengadopsinya tanpa membuat Anda benci hidup.

Tanda tangan fungsi Anda mengatakan bahwa fungsi tersebut mengembalikan . Tidak. Fungsi tersebut mengembalikan atau meledak. Sistem tipe sama sekali tidak…

Compiler yang seharusnya menangkap kasus state yang hilang, bukan tim QA Anda

Menambahkan state baru ke mesin Anda itu mudah. Mengingat untuk memperbarui setiap switch statement tidak. Berikut cara membuat TypeScript menolak untuk mengompilasi saat Anda lupa sebuah case.

State machine dimulai dengan bersih. Tiga nilai, tiga cabang switch. Lalu logika retry menambahkan state keempat. Partial failure menambahkan state kelima.…

Angka bukan sekadar angka: cara membuat compiler menangkap bug unit

Meneruskan millisecond di tempat yang mengharapkan second adalah bug yang lolos dari setiap pengujian. Berikut cara menyandikan unit secara langsung ke dalam sistem tipe TypeScript sehingga kesalahan pencampuran gagal pada saat kompilasi tanpa biaya runtime.

Sebuah fungsi meminta timeout dalam millisecond. Anda meneruskan . Nanti, fungsi lain meminta timeout dalam second. Anda meneruskan . Di antaranya, Anda…