Glosarium

Apa itu Fragmen URL?

Fragmen URL adalah bagian URL yang muncul setelah simbol hash (#). Sesuai RFC 3986, browser memproses fragmen hanya di sisi klien dan tidak pernah menyertakannya dalam permintaan HTTP yang dikirim ke server.

URL memiliki struktur yang terdefinisi: skema, otoritas, jalur, string query, dan fragmen. Fragmen (semua yang ada setelah #) awalnya dirancang untuk menavigasi ke bagian tertentu dalam sebuah halaman. Namun, properti terpentingnya dari perspektif keamanan adalah bahwa browser secara eksplisit diwajibkan oleh spesifikasi HTTP untuk tidak pernah mengirim fragmen ke server.

Saat kamu mengunjungi URL seperti example.com/page#section, browser mengirimkan permintaan untuk example.com/page — bagian #section dihapus sebelum permintaan dibuat. Fragmen tetap berada di bilah alamat browser dan dapat diakses oleh JavaScript yang berjalan di halaman, tetapi server tidak mengetahuinya sama sekali. Perilaku ini dimandatkan oleh spesifikasi HTTP dan konsisten di semua browser modern.

Properti ini membuat fragmen URL sangat berguna untuk melewatkan data sensitif dalam aplikasi web. Jika kunci enkripsi atau rahasia lain ditempatkan di fragmen, keduanya tersedia untuk JavaScript sisi klien yang membutuhkannya untuk dekripsi tetapi tidak pernah dikirimkan ke server, tidak dicatat oleh proxy, atau direkam dalam log akses server.

See the fragment vanish in transit

Edit the part after # and watch the server log update. The fragment never appears in the HTTP request line.

What your browser sees
https://www.vaulted.fyi/s/aBc123#b9pK4mNxQ_2L7eRfA3vTcU1xY8zB6jH9wM0nP5qS4iE
What the server's access log records
GET /s/aBc123 HTTP/1.1
Host: www.vaulted.fyi
User-Agent: Mozilla/5.0 ...

Per RFC 3986 §3.5, browsers strip everything after # before issuing the HTTP request. The fragment stays in the address bar, accessible only to JavaScript on the loaded page — never logged, never proxied, never cached by the server.

Cara Vaulted menggunakan Fragmen URL

Vaulted menempatkan kunci enkripsi AES-256-GCM langsung di fragmen URL. Saat kamu membuat rahasia, tautan yang dihasilkan memiliki format /s/{id}#{base64url(key)}. Karena browser tidak pernah mengirim fragmen dalam permintaan HTTP, kunci enkripsi tidak pernah mencapai server Vaulted. Browser penerima mengekstrak kunci dari fragmen, mengambil data terenkripsi dari server, dan melakukan dekripsi secara lokal. Satu pilihan arsitektur ini yang membuat Vaulted benar-benar menjadi sistem zero-knowledge.