Yerel depolama
Ziyaret kayıtları, süre ölçümleri ve ayarlar uzantının kendi yerel deposunda tutulur. SELFLEX Sync etkinleştirilmediği sürece bu verilerin hiçbiri cihazdan çıkmaz.
background.js · storage.localBu belge, SELFLEX Sync etkinleştirildiğinde hangi verinin cihazdan çıktığını, bu verinin hangi aşamalardan geçtiğini ve kimin erişebildiğini tanımlar. Her beyanın kaynak kodda karşılığı gösterilmiştir.
Aşağıdaki altı aşama, yayımlanan 1.4.5 sürümünde kodun izlediği sıradır. Her aşamanın karşısında ilgili kaynak dosya belirtilmiştir.
Ziyaret kayıtları, süre ölçümleri ve ayarlar uzantının kendi yerel deposunda tutulur. SELFLEX Sync etkinleştirilmediği sürece bu verilerin hiçbiri cihazdan çıkmaz.
background.js · storage.localHer veri grubu bağımsız bir izne bağlıdır ve tüm gruplar varsayılan olarak kapalıdır. Kapalı bir gruba ait veri yükün içine hiç yazılmaz; sonradan filtrelenmez.
background.js · syncEnabledGroups()Seçilen kayıtlar tek bir JSON bloğunda toplanır ve zlib ile sıkıştırılır. 5.000 ziyaretlik bir kütükte ölçülen boyut 1,4 MB'tan 128 KB'a inmiştir.
SelflexSyncEngine.swift · packed()Blok, herhangi bir ağ isteği başlamadan önce CloudKit'in şifreli alanına yazılır. Şifreleme anahtarı iCloud Keychain'de tutulur ve kullanıcının cihazlarından çıkmaz.
record.encryptedValues["payload"]Kayıtlar bir SELFLEX sunucusuna değil, kullanıcının kendi Apple hesabına ait özel iCloud veritabanındaki ayrılmış bir bölgeye yazılır.
privateCloudDatabase · ayrılmış bölgeYetkilendirilmiş cihaz bloğu çözer ve kayıtları kimlik bazında birleştirir. Her cihaz yalnızca kendi kaydına yazdığından hiçbir cihaz diğerinin verisini geçersiz kılmaz.
visits-<cihaz kimliği> · birleşimYukarıdaki aşamaların hiçbirinde bir SELFLEX sunucusu bulunmaz. SELFLEX'in kullanıcı hesabı sistemi, kullanıcı veritabanı veya kayıtların üzerinden geçtiği bir aracı servisi yoktur. Söz konusu olan sonradan devre dışı bırakılmış bir bileşen değil, hiç kurulmamış bir bileşendir.
Erişim üç taraf açısından ayrı ayrı değerlendirilmiştir. “Hiç kimse erişemez” ifadesi tek başına eksik olacağından, her tarafın kapsamı ve sınırı ayrıca belirtilmiştir.
Kayıtlar kullanıcının Apple hesabına ait özel iCloud veritabanında tutulur. Uygulama geliştiricisinin kullanıcıların özel veritabanına erişim yetkisi bulunmaz; geliştirici konsolunda yalnızca kendi hesabına ait veri görüntülenir.
Okunabilecek ikinci bir kopya da mevcut değildir: SELFLEX'in sunucusu, telemetri altyapısı ve analitiği bulunmamaktadır.Yük, iCloud'a yazılmadan önce cihaz üzerinde şifrelenir ve şifreleme anahtarı iCloud Keychain'de kalır. Apple, şifreli alanın içeriğini çözemez ve bu alan üzerinde sorgulama yapamaz.
Belirtilmesi gereken sınır: Apple, hesapta SELFLEX kayıtlarının bulunduğunu ve bu kayıtların yazılma zamanı ile boyutunu görebilir.Kayıtlar yalnızca aynı Apple hesabıyla oturum açılmış cihazlarda çözülebilir. Hangi grupların etkin olacağına kullanıcı karar verir ve bu tercih her cihaz için ayrı tutulur.
Senkronizasyon istenildiği anda kapatılabilir; bulut kopyası tek işlemle silinebilir.Altı grubun tamamı kurulum sonrasında kapalıdır. Senkronizasyonun etkinleştirilmesi mevcut kayıtların yüklenmesi anlamına gelmez; her grubun ayrıca açılması gerekir.
settingsAyarlar ve görünümTema, günlük hedefler, gizlilik anahtarları ve panel tercihleri.
KapalıcategoriesÖzel kategorilerKullanıcı tarafından tanımlanan kategori adları ve alan adı kuralları.
KapalıexcludedHariç tutulan sitelerÖlçüm dışı bırakılan alan adları ve bunlara ait silme kayıtları.
KapalıvisitsZiyaret kayıtlarıAlan adı, kategori, süre ve zaman damgası. Son 30 gün, en çok 5.000 kayıt.
KapalıtitlesSayfa başlıklarıZiyaret edilen sayfanın başlığı ve tam adresi.
KapalıqueriesArama sorgularıArama motoruna girilen metin.
KapalıZiyaret kayıtları etkinleştirilip sayfa başlıkları kapalı bırakıldığında, yüke yazılan adres https://alanadi.com/biçimine indirgenir; sayfa yolu, sorgu dizesi ve başlık hiç yazılmaz. Bu bir görüntüleme kısıtı değildir — veri doğrudan bu biçimde üretildiğinden iCloud'a aktarılan kopyada söz konusu alanlar zaten yer almaz.
Aşağıdaki beş davranış, düzenlenebilir bir tercih değil uygulamanın yapısal özelliğidir. Belirtilen dosya ve fonksiyon adları uygulama kaynağındaki gerçek adlardır.
Gönderilecek gruplar her aktarımda yeniden okunur ve kapalı bir grup için yük üretilmez. Sınırlama arayüzde değil, verinin hazırlanması aşamasında uygulanır.
background.js · runSyncPush()Blok, CloudKit'in düz alanına değil şifreli alanına kaydedilir. Şifreli alanlar sunucu tarafında çözülemez ve sorgulanamaz.
SelflexSyncEngine.swift · encryptedValuesKayıtları birbirinden ayırmak için kullanılan kimlik rastgele bir UUID'dir; cihaz adı, seri numarası veya donanım kimliği değildir. Yük yalnızca “mac” ya da “ipad” gibi bir cihaz türü bilgisi taşır.
SelflexSyncEngine.swift · deviceIdSayfa başlıkları grubu kapalıyken tam adres yüke hiç yazılmaz; adres yalnızca alan adına indirgenir. Bu, arayüzde gizlenen bir alan değil, verinin kendisine uygulanan bir kısıtlamadır.
background.js · visitsForSync()Silme işlemi kayıtları tek tek temizlemez; SELFLEX'e ayrılmış bölgenin tamamını kaldırır. Bölge kaldırıldığında içindeki tüm kayıtlar da ortadan kalkar.
SelflexSyncEngine.swift · wipe()SELFLEX Sync etkinleştirildiğinde veri cihazdan çıkar. Bu belgenin beyanı verinin hareket etmediği yönünde değildir; hareket ettiği yerin SELFLEX tarafından okunamayan bir alan olduğu yönündedir. Aşağıdaki sınırlar bu beyanın kapsamı dışındadır:
Beyanın kesin ifadesi: SELFLEX Sync etkinken veri cihazdan çıkar; ancak SELFLEX'in, reklam ağlarının veya herhangi bir analiz sağlayıcısının erişebildiği bir konuma aktarılmaz.
Aşağıdaki üç kontrol, herhangi bir geliştirici aracı gerektirmeden kullanıcının kendi cihazında yapılabilir.
iCloud.SELFLEX Sync yazın.Doğrulanabilir bir tutarsızlık bildirimi, herhangi bir tanıtım ifadesinden daha değerlidir.