Bir Kimlik Bilgisi İsteği QR Kodunu Taradığınızda Ne Oluyor
Tarama size kimin sorduğunu söylemiyor. Tarayıcı, kodun beklenen şekilde iyi biçimlendirilmiş JSON içerdiğini ve bir alanın did: ile başlayan bir dizgi olduğunu kontrol ediyor, ve isteyenin kimliği üzerindeki kontrolün tamamı budur.
Sayfanın geri kalanı taramanın ne yaptığıdır, kodun yaptığı sırayla.
Adım adım, koddan
- Kamera bir QR kodu okuyor. Bu gerçek bir kamera ve gerçek bir çözücüdür, tarayıcınızda çalışan
getUserMediavejsQRkitaplığı. Burada hiçbir şey benzetim değil. - Yük JSON olarak ayrıştırılıyor ve kendini bir
solidus-credential-requestolarak bildirmek zorunda. Başka her şey geri çevriliyor. - Üç alan gerekiyor:
did:ile başlayan bir isteyen tanımlayıcısı, bir isteyen adı ve istenen kimlik bilgisinin türü. - Hesabınıza bekleyen bir istek yazılıyor, siz hiçbir şeyi kabul etmeden önce.
- Size kimin sorduğu ve ne istediği gösteriliyor, ve bir kimlik bilgisi ile belirli iddiaları seçiyorsunuz ya da reddediyorsunuz.
- Onay üzerine 30 günlük süre dolumu olan bir paylaşım kaydı oluşturuluyor.
3. adım bir doğrulama değil ve ona öyle demek yalan olurdu
did: bir önektir. Tanımlayıcı hiçbir zaman çözümlenmiyor, hiçbir zaman getirilmiyor ve bilinen verenler ya da doğrulayıcılar sicilinin hiçbirine karşı kontrol edilmiyor.
Bankanızdan olduğunu söyleyen bir QR kodu, bankanızdan olduğunu söyleyen bir QR kodudur. Tarama bunu doğru yapmıyor ve bu akışın devamındaki hiçbir şey de doğru yapmıyor.
Uç noktanın adı validate ve doğruladığı şey iletinin şeklidir, gönderenin kimliği değil.
Bunlar farklı şeylerdir ve ad bu karışıklığa davet ediyor.
Ürünün bu konuda doğru yaptığı şey, eleştiriden önce, çünkü hak etti
Arka uç numara yapmıyor. Yanıtı, DID belgesi doğrulamasının ertelendiğini söyleyen açık bir yorumla birlikte yanlışa sabit kodlanmış bir doğrulama bayrağı taşıyor. Sessizce doğruya varsaymadı ve kimse sormasın diye alanı atlamadı.
Ve arayüz bayrağa uyuyor. Doğrulama rozeti yalnızca o bayrak doğruyken gösteriliyor, yani bugün hiçbir zaman. Ekranda yanlış bir güven işareti yok. Pek çok ürün "QR kodunu başarıyla ayrıştırdık" için yeşil bir kalkan gösterirdi, bu göstermiyor.
Doğru arıza kipi budur. Boşluk, kontrolün eksik olmasıdır, eksik bir kontrolün geçmiş gibi süslenmesi değil, ve bunlar sahip olunacak çok farklı türden problemlerdir.
Taramanın kendisi bir yazma
4. adım üzerinde durmaya değer. Kameranızı geçerli görünen bir koda doğrultmak, herhangi bir rıza ekranından önce hesabınıza bekleyen bir satır ekliyor. Size kapsamlanmış, kendi başına hiçbir şey yapmıyor ve onay/ret adımını adreslenebilir kılan şey o, makul bir uygulama seçimi, ve yine de istemediğiniz bir yazma. Meraktan on kod tararsanız, bekleyen on isteğiniz olur.
Onaylamanın gerçekte ne yaptığı ve ne yapmadığı
Onaylamak, isteğin durumunu güncelliyor ve bir kimlik bilgisi ile iddialar seçtiğinizde 30 gün sonra süresi dolan bir paylaşım kaydı ekliyor. Korumalar doğrudur: size ait olmayan bir istek "bulunamadı" döndürüyor ve artık bekleyen olmayan bir istek bir çakışma döndürüyor, dolayısıyla aynı şeyi iki kez onaylayamıyorsunuz.
Ve sonra hiçbir şey gönderilmiyor. Hiçbir sunum kurulmuyor, isteyene hiçbir ileti gitmiyor, hiçbir geri çağrı tetiklenmiyor. Bu akışın bitiş durumu veritabanımızdaki bir satırdır. Size QR kodunu gösteren kişi ondan hiçbir şey almıyor; ne alıyorlarsa, sizin ve onların ayarladığı başka bir yolla alıyorlar.
Arka ucu giden herhangi bir teslim için kontrol ettik ve bulamadık, aramanın koda ulaştığını doğrulayan bir kontrolle. Yani "tara ve paylaş" bugün "paylaşmayı kabul ettiğini kaydetmek için tara" demek.
İkinci bir akış var ve gerçekten teslim eden o
Yukarıdaki paragrafı hikâyenin tamamı olarak yayımlardık ve kendi ürünümüzü eksik tarif ederdi.
Yalnızca arka uca bakan bir arama arka uç davranışını görüyor. Tarayıcı kodunu kontrol etmek farklı
bir yüzey buldu, /present, ki orada bir doğrulayıcının isteği tarayıcı üzerinden değil bir
bağlantı olarak varıyor ve açıklama doğrulayıcının kendi uç noktasına geri gönderiliyor.
Onunla ilgili iki şey gerçekten iyi kurulmuş, biri de sert bir sınırlama:
- Geri çağrı, isteyenin alan adına bağlı. Yanıt adresi
httpsolmak zorunda ve ana bilgisayar adı istekteki alan adıyla tam olarak eşleşmek zorunda, hem istek ayrıştırılırken hem de gönderme anında yeniden kontrol ediliyor, dolayısıyla bir açıklama başka bir ana bilgisayara yönlendirilemiyor. Koddaki yorum derinlemesine savunma iddia ediyor; uygulama yorumla eşleşiyor. Kontrol ettik, çünkü bir yorum kanıt değildir. - Açıklama sizin tarayıcınızda kuruluyor, bu tarayıcının zaten tuttuğu kimlik bilgisi malzemesinden.
- Ki sınırlama da budur: bu tarayıcı onu tutmuyorsa, akış çalışamıyor. Onu sizin için kurmamızı sağlayacak hiçbir sunucu tarafı yedeği yok.
Sayfa ayrıca kanıtı nasıl üreteceğine karar vermek için cihazınızı ölçüyor. O ölçümü yayımlamıyoruz, ne burada ne başka yerde: tek bir tarayıcıdan gelen bir sayı bir başarım iddiası değildir ve onu bir iddiaya çevirmek tam olarak bu sitenin önlemek için var olduğu hamledir.
İki akış birbirine bağlı değil. Tarayıcı, teslim edeni sürmüyor. Buna karşı geliştirme yapıyorsanız, o ayrım bu sayfadaki en kullanışlı cümledir.
Kendiniz neyi kontrol edemezsiniz
Tarayıcı kimlik doğrulamasının arkasında, /qr-scanner oturum açmaya yönlendiriyor ve kasıtlı
olarak sahte bir yol 404 döndürüyor, dolayısıyla yönlendirme, her şeyin yönlendirildiği değil sayfanın
gerçek olduğu anlamına geliyor. Bu sayfa kod okuması kanıtıdır, kendiniz çalıştırın türünden
değil.
İçerik planımız bu sayfayı /scan-to-share olarak adlandırıyor. Böyle bir rota yok: 404
döndürüyor. Gerçek yüzeyler /qr-scanner ve /share. Bu, bu üründe uygulamayla eşleşmeyen beşinci
plan rotasıdır ve bunu sizi sessizce yönlendirmektense sayfada söylemeyi tercih ederiz.

