URL Parçası nedir?
URL parçası, bir URL'de diyez (#) sembolünden sonra görünen kısımdır. RFC 3986 uyarınca tarayıcılar, parçaları yalnızca istemci tarafında işler ve sunucuya gönderilen HTTP isteklerine hiçbir zaman dahil etmez.
URL'lerin tanımlanmış bir yapısı vardır: şema, yetki, yol, sorgu dizesi ve parça. Parça (# sonrasındaki her şey), başlangıçta bir sayfada belirli bir bölüme gitmek için tasarlanmıştı. Ancak güvenlik perspektifinden en önemli özelliği, tarayıcıların HTTP spesifikasyonu tarafından parçayı hiçbir zaman sunucuya göndermemesi gerektiği şeklinde açıkça yükümlü kılınmasıdır.
example.com/page#section gibi bir URL'yi ziyaret ettiğinde, tarayıcı example.com/page için istek gönderir; #section kısmı, istek yapılmadan önce çıkarılır. Parça, tarayıcının adres çubuğunda kalır ve sayfada çalışan JavaScript tarafından erişilebilirdir; ancak sunucunun bundan haberi yoktur. Bu davranış, HTTP spesifikasyonu tarafından zorunlu kılınmış olup tüm modern tarayıcılarda tutarlıdır.
Bu özellik, URL parçalarını web uygulamalarında hassas veri iletmek için benzersiz şekilde kullanışlı kılar. Şifreleme anahtarları veya diğer gizli bilgiler parçaya yerleştirilirse, şifre çözme için ihtiyaç duyan istemci tarafı JavaScript tarafından erişilebilir olurlar; ancak hiçbir zaman sunucuya iletilmezler, proxy'ler tarafından günlüğe kaydedilmezler veya sunucu erişim günlüklerine yazılmazlar.
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.
https://www.vaulted.fyi/s/aBc123#b9pK4mNxQ_2L7eRfA3vTcU1xY8zB6jH9wM0nP5qS4iE
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.
Vaulted URL Parçası nasıl kullanır
Vaulted, AES-256-GCM şifreleme anahtarını doğrudan URL parçasına yerleştirir. Bir gizli bilgi oluşturduğunda, üretilen bağlantı /s/{id}#{base64url(key)} biçimindedir. Tarayıcılar parçayı HTTP isteklerine hiçbir zaman dahil etmediğinden, şifreleme anahtarı Vaulted'ın sunucusuna hiçbir zaman ulaşmaz. Alıcının tarayıcısı anahtarı parçadan çıkarır, şifreli verileri sunucudan alır ve şifre çözmeyi yerel olarak gerçekleştirir. Bu tek mimari karar, Vaulted'ı gerçek anlamda sıfır-bilgi sistemi yapan şeydir.