Některá řešení bývají překvapivě prostá a efektivní. Vezměme si třeba problém změny hesla ve správci hesel. Pokud ve svém správci vygenerujete nové (samozřejmě silnější) heslo a vyzvete ho k otevření daného webu, na kterém si budete přát změnu provést, správce vám může v prohlížeči otevřít titulní stranu. Nemůže vás poslat na konkrétní adresu s formulářem, protože ta je na každém webu jinde a on nemá další podrobnosti jak zjistit.
Řešením je dobře známá adresa pro změnu hesla. Že je dobře známá tu značí jednak samotný fakt, ale také to, že leží v cestě začínající na /.well-known/
, kterou jste už pravděpodobně viděli – používá ji k ověřování žádostí například certifikační autorita Let's Encrypt nebo ji lze využít ke zveřejnění MTA-STS politiky . Není to ale jediné použití, jak ukazuje seznam rezervovaných adres u IANA.
Známá adresa
Specifikace, jejíž autorkou je Theresa O'Connor z Apple, přichází s jednoduchým řešením: navrhuje adresu /.well-known/change-password
, která návštěvníka přesměruje na cílovou adresu s rozhraním pro změnu hesla. Tam už se vrátí běžný HTTP kód OK a uživatel má možnost si heslo změnit.
V praxi tedy správce hesel při požadavku o změnu hesla na konkrétním webu vyzkouší, zda definovaná dobře známá adresa existuje. Pokud server vrátí HTTP kódy 2×x nebo 3×x, pak je uživateli tato stránka otevřena. Protože adresy v této speciální cestě jsou výslovně určeny pro metadata, je zakázáno, aby stránka obsahovala samotný formulář pro změnu hesla. Místo toho musí provést přesměrování pomocí kódu 3×x nebo vrátit HTML stránku s přesměrováním v META hlavičce. Klient (prohlížeč) pak musí být schopen toto přesměrování následovat a otevřít cílovou stránku.
Je to velmi prosté a elegantní řešení, které nezanáší do aplikace výraznou implementační složitost. Sama autorka zmiňuje jako alternativu například uvedení adresy pro změnu hesla v hlavičce webu, což by ovšem znamenalo, že je potřeba obsah webu parsovat, pamatovat si stav na daném webu, pravidelně informaci kontrolovat a podobně. Přesměrování je proti tomu plně v rukou autora webu a pro správce hesel neznamená žádnou zátěž navíc.
Podpora u Apple
Nepřekvapí, že podpora je už zavedena právě u Apple, funkcionalitu umí využít iCloud Keychain v iOS 12 a také Safari 12. Na straně služby se například správného přesměrování dočkáte na webu iCloud.com. Rozšíření dále závisí na programátorech správců hesel a poté na tvůrcích webů. Zavedení je ovšem na obou stranách velmi snadné, což by mohlo pomoci.
Root už tuhle vlastnost podporuje, můžete vyzkoušet navštívit:
https://www.root.cz/.well-known/change-password
Nápad je to zajímavý a určitě by bylo možné podobným způsobem podchytit i další běžné stránky nacházející se na většině webů. V diskusi na Hacker News se zmiňují například:
/.well-known/register
/.well-known/login
/.well-known/logout
/.well-known/request-user-data
/.well-known/delete-account
Stáli byste o něco podobného?