Kısa oturumlara veda edin - Web'de çerez yönetimini iyileştirmek için Service Worker'ların kullanılmasıyla ilgili bir öneri

William Denniss
Owen Campbell-Moore

Yerleşik uygulamaların yalnızca bir kez giriş yapmanızı istemesi ve ardından çıkış yapmak istediğinizi söyleyene kadar sizi hatırlaması hepimizin hoşuna gider. Maalesef web'de her zaman böyle olmaz.

Cihazlar (özellikle mobil cihazlar) artık daha kişisel ve daha fazla site tüm trafiği HTTPS üzerinden göndererek jeton hırsızlığı riskini azalttığından, web siteleri kısa süreli çerez politikalarını yeniden değerlendirmeli ve daha kullanıcı dostu, daha uzun süreli oturumlar kullanmaya başlamalıdır.

Ancak oturumun daha uzun sürmesini isteseniz bile bazı web siteleri her istekte kullanıcının kimlik doğrulamasını doğrulamaz (yani, oturum çerezi oluşturulduktan sonra iptal edilemez). Bu durum genellikle kısa oturumlara neden olur. Kullanıcı, kimlik doğrulamasının yeniden doğrulanabilmesi için sık sık oturum açmak zorunda kalır. Bu da şifre değişikliği gibi işlemlerin belirli bir süre içinde mevcut oturumları geçersiz kılmasına olanak tanır.

Bu yaklaşımı kullanıyorsanız durum bilgisi olmayan kimlik doğrulama çerezini otomatik olarak yeniden doğrulamanıza yardımcı olabilecek teknik bir çözümümüz var. Bu yöntem, mevcut kısa ömürlü kimlik doğrulama çerezinizi yenilemek için kullanılabilecek ikincil bir uzun ömürlü jetona sahip olarak çalışır. Yeni hizmet çalışanı kalıbından yararlanmak, uzun süreli jetonla düzenli olarak "iletişime geçmemize", kullanıcının kimliğini doğrulamamıza (örneğin, yakın zamanda şifrelerini değiştirip değiştirmediklerini veya oturumu başka bir şekilde iptal edip etmediklerini kontrol etmemize) ve yeni bir kısa süreli kimlik doğrulama çerezi yeniden yayınlamamıza olanak tanır.

Web'de güvenli uzun oturumlara geçmek için pratik bir öneri

Bu yayında, 2-Cookie-Handoff (2CH) olarak adlandırdığımız yeni bir teknik açıklanmaktadır. Bu makaleyi, bu yaklaşımın olumlu olup olmadığı konusunda topluluğun geri bildirimlerini almak ve olumlu yanıt alırsak 2. kanal kullanımıyla ilgili en iyi uygulamaları belgelemek için sektörle birlikte çalışmak amacıyla kullanmayı umuyoruz.

Hizmet çalışanları, Chrome, Firefox, Opera gibi birden fazla tarayıcı tarafından desteklenen ve yakında Edge'de kullanıma sunulacak yeni bir teknolojidir. Mevcut sayfaları değiştirmeden, istemcideki ortak bir kod noktası aracılığıyla sitenizden gelen tüm ağ isteklerini durdurmanıza olanak tanır. Bu sayede, oturum açmış kullanıcılar için sayfanızı oluşturan tüm ağ isteklerinin önüne geçebilecek ve jeton değişimini mobil uygulamalar gibi gerçekleştirebilecek bir "2CH işleyicisi" ayarlayabilirsiniz.

Çoğu zaman sunucunuzda, mobil uygulamaların genellikle OAuth protokolünü kullanarak yeni bir kısa ömürlü jeton almak için kullandığı bir uç nokta bulunur. Yukarıdaki kalıbın web'de etkinleştirilmesi için bu uç noktanın, bir hizmet çalışanı tarafından ne zaman çağrıldığını anlayacak şekilde güncellenmesi ve ardından sitedeki diğer sayfaların beklediği şekilde biçimlendirilmiş yeni bir kısa ömürlü oturum çerezi döndürmesi yeterlidir.

Sunucunuzda böyle bir uç nokta yoksa yalnızca tarayıcı oturumu yönetimi için bir uç nokta oluşturabilir.

2 çerez aktarma sırası

Hizmet işçileriyle iki jetonlu kalıp, OAuth 2.0 kalıbına oldukça yakındır. Zaten bir OAuth jetonu uç noktası çalıştırıyorsanız bunu web kimlik doğrulamanız için hizmet işçileriyle yeniden kullanabilirsiniz.

Kullanıcı, hizmet işçilerini desteklemeyen bir tarayıcıyı ziyaret ederse ne olacağını da merak ediyor olabilirsiniz. Yukarıdaki yaklaşımı uygularsanız kullanıcılar hiçbir fark hissetmez ve kısa oturumlar kullanmaya devam eder.

Örnek bir istemci ve arka uç yayınladık. Bu özelliği kendiniz deneyeceğinizi ve oturum yönetimiyle ilgili bir ankete yanıt vereceğinizi umuyoruz.