HTTP - HTTPS átirányítás query string nélkül

Fórumok

Egy ideje átirányítunk egy weboldalon minden kérést HTTPS-re.

Most hoztunk egy döntést, hogy az átirányítás ezentúl nem tartalmazza az útvonalat és paramétereket csak a host nevet, minden megy a főoldalra. Így aki beírja az oldal nevét az átkerül a HTTPS oldalra, de a régi HTTP linkek is ott fognak kikötni, illetve az összes úgyfelejtett URL sem fog működni.

Az egyik fejlesztő elég hangosan ellenzi ezt a változtatás. Azzal érvel, hogy az első hívással már így is úgy is kimentek az érzékeny adatok titkosítás nélkül, session, cookie ... stb. Semmi értelme a főoldalra dobni az embert, mert MITM estén azt az infót már elkapták, bármit csinálunk.

Szerintem viszont egy ilyen átirányítás csak elfedi a problémát és hamis biztosnágérzetet kelt. Volt egy döntés, hogy abszolút mindennek HTTPS-en kell mennie. Úgy gondolom, hogy ha nem úgy jön a kérés, akkor annak láthatónak kell lennie és nem transzparens módon ugyanúgy működnie mintha minden jó lenne.

Mit gondoltok?
Ti megtartjátok a teljes URL-t ha ilylen átirányítást csináltok?

Hozzászólások

Általában igen, de projektfüggő.

A posztban említett fejlesztővel vagyok kénytelen egyetérteni, ha valakinél bookmarkolva van egy HTTP link, és van egy eltárolt cookie-ja is mellé, akkor valóban semmi értelme egy ilyen redirectnek biztonsági/adatvédelmi szempontból. Kimegy a request (lehallgatható), kimegy a cookie (lehallgatható), innentől kezdve máris sérül az adatbiztonság.

Az utóbbi években elindult egy olyan törekvés, hogy preferálni kell a HTTPS kapcsolatok használatát, amivel maximálisan egyetértek, hiszen tudjuk, milyen veszélyeknek vagyunk manapság kitéve az interneten.

Nem tudom, hogy van más böngészőkben, de a Firefox egy ideje már eleve HTTPS-re próbál kapcsolódni, és csak akkor vált át sima HTTP-re, ha nincs a betöltendő oldalnak HTTPS elérhetősége vagy pl. nem valid (self-signed, lejárt stb) a tanúsítvány.

Ez alól persze kivétel az explicit módon http:// előtaggal megadott URL, márpedig a bookmark-okban és a history-ban szinte kizárólag így tárolódnak a linkek...

A kompromisszum talán az lehet, ha egy köztes oldalra kerül a user, ahol kap egy HTTPS linket, plusz valami udvarias szöveget arról, hogy a saját biztonsága érdekében frissítse a könyvjelzőjét (csak egyszer kell megtennie, utána biztonságban tudhatja magát).

Egy esetben lehet értelme a máshova irányításnak: kierőszakoljátok azt hogy a hibás linkek frissítve legyenek. Más tekintetben valóban a fejlesztő kollégának van igaza, azon a lekérdezésen ami elment már nem tudsz segíteni.

Amit viszont tenni tudtok:
- cookiehoz használjatok secure flag-et (ha lehet httponly-t is) így a session id http-n kiszivárgása megszüntethető
- implementáljátok a HTTP Strict Transport Security -t, így a browser megtanulja hogy minden további felétek menő kérést http helyett is https-en küldjön: első látogatás után ez lényegében megóvja a felhasználókat.

Ezek azért is fontosak, mert egy támadó könnyedén elétehet a felhasználónak egy http-s linket vagy iframet egy külső weboldalon, és "kész a baj".

Szvsz ennek biztonsági szempontból csak akkor van értelme, ha a továbbiakban http-n egyáltalán nem szolgáltok ki, de legalábbis nem ugyan azt amit https-en. (mondjuk pl csak egy dummy/redirect oldalt)

Emellé az is kell, amit már valaki javasolt: sütikre csak https only flag.

Így ennek hosszabb távon lesz értelme, mert így a régi http bookmarkok "kikopnak" idővel. Tehát nyilván lesz egy átállási időszak, amíg valóban az a helyzet amit a fejlesztőtök állít. Egyébként ha valóban az van hogy egy ideje, már mindent átirányítotok, akkor ez az átállás már amúgy is folyamatban van, így várhatóan csak kevés lesz az érintett.

--
zrubi.hu

Köszi, utánanézek jobban a HSTS beállításának és a köztes figyelmeztető oldal is jó ötlet.

Továbbra is úgy gondolom, hogy ha valami nem biztonságos, akkor annak látszania kell és nem transzparensen működnie, de úgy tűnik egyedül maradtam a paranoiámmal :)