Opravdu se dá za bezpečnostní problém iOS považovat to, že se lze hacknutím serveru dostat ke komunikaci zařízení s tímto serverem? Teda nevidím až tak moc smysl v přesměrovávání komunikace, když už mám kontrolu nad konkrétním serverem ...
Jedna to není problém iOSu,ale aplikací na iOSu. A druhá věc je, že nad konkrétním serverem kontrolu nemám, právě proto dochází k přesměrování na jiný.
Bude to zřejmě zčásti i problém IOSu - aplikace HTTP komunikaci neimplementují samy, a to zapamatování si přesměrování bude zřejmě výchozí nastavení někde uvnitř HTTP modulu v IOSu.
Ano, systémová komponenta reaguje na "301 Moved Permanently" jak se očekává - přesměrovává trvale. Co s tím? Ignorovat specifikaci HTTP protokolu?
"The requested resource has been assigned a new permanent URI and any future references to this resource SHOULD use one of the returned URIs. Clients with link editing capabilities ought to automatically re-link references to the Request-URI to one or more of the new references returned by the server, where possible. This response is cacheable unless indicated otherwise."
Specifikace říká "This response is cacheable unless indicated otherwise". Tedy že přesměrování může být "uloženo trvale", nikoliv že musí být uloženo trvale. Bezpečnější implementace (bez trvalé cache) tedy specifikaci nijak neodporuje.
Na druhou stranu souhlasím, že trvalá cache je logičtější a uživatelsky přítulnější. Od teď už se ale taky ví, že je nebezpečná - a to by mělo mít přednost. Nedávám Applu za vinu, že na to nepřišli sami (nikdo nemůže dopmyslet všechno), ale určitě by teď výchozí chování měli změnit.
To "This response is cacheable unless indicated otherwise" ale znamená, že to má být cachováno, pokud není explicitně řečeno, že to má být jinak. Takže význam není "může být", ale "má být, pokud není stanoveno jinak".
"is cacheable" = "is suitable for caching" = "může být cachováno"
oproti tomu "má být cachováno" by bylo "should/shall/has to be cached"
Nepadnul tady asi jediný spolehlivý způsob jak se proti tomu bránit - kontrola SSL certifikátu. Při připojení by aplikace měla například zkontrolovat jestli je certifikát "od nás" a pokud ne, tak zamítnout komunikaci a dát o tom uživateli vědět, že se jej třeba někdo snaží na této wifině napadnout.
V tomhle je OS nevinně, je to na vývojářích aplikací.
Primárně je to určitě na aplikaci. Na druhou stranu - OS by se neměl spoléhat na to, že aplikace jsou napsané správně (nejsou), a tudíž by se měl snažit dopady špatně napsaných aplikací minimalizovat (kde to jde). A zrovna v tomhle případě OS tu chybu v aplikaci umocňuje...