Autor Zpráva
gogy27
Profil
Dobrý deň,
doteraz som prihlasovanie na web robil pomocou COOKIES ale neviem či je to najšťastnejšie riešenie. Preto sa chcem spýtať na bližšie info či využívať radšej SESSION a doňho ukladať všetky potrebné údaje o užívateľovi (jeho meno, heslo, aké ma práva,...) alebo je to bezpečné nechávať v COOKIES, alebo to riešiť tak, že si iba uložiť jeho meno a heslo do jednej z týchto premenných a vytvoriť skript, ktorý stále zisťuje, aké má daný užívateľ práva.

Ďakujem.
Sir Tom
Profil
gogy27:
Také dobrý den,

COOKIES si umí chytrý uživatel přečíst a editovat. Proto by v koláčcích nemělo být nic, co by mohl uživatel zneužít. Určitě nezneužije, když si v cookies přečte jméno a heslo, ale už může zneužít práva. (To záleží podle jakého pravidla práva definuješ a přiřazuješ.) Session je v tomto lepší, ale problém je ten, že po vypnutí prohlížeče se session vymaže. Doporučuji mít v databázi tabulku s právy v cookies uchovávat pouze identifikátory uživatele (jméno, popř. heslo) a podle těchto identifikátorů vytahovat práva z db.
gogy27
Profil
Sir Tom:
Ďakujem, takéto riešenie som si aj urobil, len sa mi zdalo trochu "blbé" stále zisťovať pri každej stránke jeho práva. Ale asi to je jediné elegantné riešenie.
jenikkozak
Profil
Sir Tom:
v cookies uchovávat pouze identifikátory uživatele (jméno, popř. heslo)
Vzhledem k tomu, že se cookies posílají na server s každým požadavkem a ukládají se na klientovi v nešifrované formě, není dobré do nich ukládat tak citlivé údaje, jako je heslo. Je nezodpovědné se takto chovat, když víš, že spousta uživatelů používá stejná hesla na více služeb.
Sir Tom
Profil
jenikkozak:
Je nezodpovědné se takto chovat, když víš, že spousta uživatelů používá stejná hesla na více služeb.
Samozřejmě, že ne čisté heslo, ale třeba osolené, nebo nějaký "jiný patvar", který je pak modifikován na jiný tvar nějakou funkcí na serveru. Těžko mluvit o zodpovědnosti či nezodpovědnosti, když heslo ukládá spousta prohlížečů a tím pádem žádná ochrana ze strany webvývojářů není dost účinná.
jenikkozak
Profil
Sir Tom:
heslo ukládá spousta prohlížečů a tím pádem žádná ochrana ze strany webvývojářů není dost účinná.
Ale ta ho neukládá 1) do snadno čitelných cookies,
2) bez souhlasu uživatele a
3) neposílá ho na server při každém požadavku.
Když se přihlásíš na web jednou, může ti přihlášení vydržet den nebo i více. Náhodný kolemjdoucí pak při odchytnutí třeba tvé Wifi nezíská heslo při každém požadavku na server.

Samozřejmě, že ne čisté heslo, ale třeba osolené, nebo nějaký "jiný patvar", který je pak modifikován na jiný tvar nějakou funkcí na serveru.
Ale měl by to být řetězec s časově omezenou platností. V případě jeho úniku je jinak jedno, jestli útočník získal skutečné, nebo „patvar“.
A tím v podstatě vzniká princip, na kterém fungují sessiony, až na to, že přicházíš o jeho automatickou správu.
Sir Tom
Profil
jenikkozak:
Ale měl by to být řetězec s časově omezenou platností.
To už je záležitost algoritmu, který "patvar" vytvoří a bude číst.

Ale ta ho neukládá 1) do snadno čitelných cookies,
2) bez souhlasu uživatele a
3) neposílá ho na server při každém požadavku.
No - já třeba vím, že když se dostanu do prohlížeče mojí ségry, tak se dostanu i k uloženým heslům.
Teď plácnu jen tak myšlenku: Předpokládejme hloupost uživatelů (tzn. že kliknou na jakýkoliv souhlas) a navštivme třeba internetovou kavárnu, kde je jenom 1 prohlížeč. Získal by tak zákazník kavárny hesla svého předchůdce, pokud by předchůdce byl hloupý a neuvědomal si riziko s ukládáním hesel?
jenikkozak
Profil
Sir Tom:
No - já třeba vím, že když se dostanu do prohlížeče mojí ségry, tak se dostanu i k uloženým heslům.
To jistě vyžaduje hodně odvahy, lsti a síly takhle převést člověka, který tě nepovažuje za útočníka. :)

Získal by tak zákazník kavárny hesla svého předchůdce, pokud by předchůdce byl hloupý a neuvědomal si riziko s ukládáním hesel?
Ano. A co z toho vyplývá?
Do prohlížeče, ke kterému mají ostatní volný přístup, uloží hesla jen ten hloupý člověk. Ale pokud hloupý člověk vytvoří aplikaci, nabídne hesla všech.
Sir Tom
Profil
jenikkozak:
To jistě vyžaduje hodně odvahy, lsti a síly takhle převést člověka, který tě nepovažuje za útočníka.
Nemyslel jsem to nijak namachrovaně, jenom jsem na to poukázal... - samozřejmě, že toho nezneužívám, ale učím ji takové té počítačové gramotnosti jak se chovat na internetu :)

Ano. A co z toho vyplývá?
Do prohlížeče, ke kterému mají ostatní volný přístup, uloží hesla jen ten hloupý člověk. Ale pokud hloupý člověk vytvoří aplikaci, nabídne hesla všech.
Souhlasím - z toho vyplývá i to, že by snaha o bezpečnost dat uživatelů měla být jak na straně vývojáře tak i na straně samotného uživatele. (A co si budeme namlouvat - je mnohem více hloupých uživatelů, než hloupých vývojářů.) :)
jenikkozak
Profil
Sir Tom:
samozřejmě, že toho nezneužívám
Jé, to je roztomilý, takovýho bráchu bych taky chtěl.

(A co si budeme namlouvat - je mnohem více hloupých uživatelů, než hloupých vývojářů.)
A co si budeme namlouvat -- ono je mnohem víc chytrých uživatelů než chytrých vývojářů. Už proto, že množina uživatelů je mnohonásobně větší.

Jde však prostě o to, že pokud uživatel kašle na svou bezpečnost, je to jeho věc. Ale ty jako vývojář bys ho neměl nutit jít cestou, o které víš, že bezpečná není. A proto ukládání hesel do prohlížeče (které se dá navíc chránit hlavním heslem) a posílání hesel v cookies nepovažuji za totéž.
Sir Tom
Profil
jenikkozak:
ono je mnohem víc chytrých uživatelů než chytrých vývojářů
Absolutně jistě, ale relativně bych řekl, že to bude jinak. Proč by jinak v různých žebřížčích používaných hesel vyhrávalo tradiční 12345 nebo jsou stále tak úspěšné phising útoky?

ty jako vývojář bys ho neměl nutit jít cestou, o které víš, že bezpečná není
S tím souhlasím - nikde jsem nepsal, že uživatele tlačím do nebezpečné cesty. Čili - ukládat citlivé data: ano, pokud není jiná možnost, ale ukládat je tak, aby nešly zneužít...

Shodneme se na tom, že se bavíme o dvou různých věcech. Celou dobu narážím na to, že ač je vývojář dobrý, jak chce, a chce ochránit své uživatele, tak mu to nemusí nic platné, pokud uživatel bude hloupý.

Dokonce ani nemusí být hloupý - stačí, když někdo (říkejme Pan X) zná uživatelův e-mail a zažádá si pro tento e-mail o zapomenuté heslo. Tento e-mail s novým (starým) heslem pak dojde na nějakou spešl zadanou adresu (např. Pána X). Pak stačí zodpovědět kontrolní otázku, na kterou se Pan X může dotyčné oběti přímo zeptat, protože oběť si pochopitelně nepamatuje, že odpověď na tuto otázku může být nebezpečná. (Takhle to třeba řeší e-mail u seznamu a je to bežná cesta nabourání e-mailu.)
jenikkozak
Profil
Sir Tom:
S tím souhlasím - nikde jsem nepsal, že uživatele tlačím do nebezpečné cesty.
V příspěvku [#2] tvrdíš, že útočník „určitě nezneužije, když si v cookies přečte jméno a heslo, ale už může zneužít práva.“ A dále „doporučuji [...] v cookies uchovávat pouze identifikátory uživatele (jméno, popř. heslo)“. Zcela scestně pak argumentuješ tím, že uživatelé jsou stejně úplně blbá stvoření a nic než vyzrazení svých hesel si nezaslouží.

Shodneme se na tom, že se bavíme o dvou různých věcech.
Možná by pomohlo, kdyby ses nesnažil diskusi kopnout do autu řečmi, kolik je hloupých uživatelů a jak jsi hodný na sestru. Třeba by stačilo nereagovat.
Sir Tom
Profil
jenikkozak:
V příspěvku [#2] tvrdíš, že útočník ‚určitě nezneužije, když si v cookies přečte jméno a heslo, ale už může zneužít práva.‘
V příspěvku mluvím o uživatelovi. Žádný útočník se tam nevyskytuje... Nepochopil jsi to. Je to celé myšleno tak, že uživatel sám sobě nezmění hodnoty v koláčcích, protože by patrně přestal na webu fungovat, ale když si změní sám sobě míru oprávnění, tak se může dostat k funkcím webu, na které by s menší mírou neměl.

A dále ‚doporučuji [...] v cookies uchovávat pouze identifikátory uživatele (jméno, popř. heslo)‘.
A popřípadě heslo. Popřípadě znamená, že jen tehdy, je-li to nutné. A pokud je to nutné, tak to ukládat v nějaké nečitelné podobě, jak jsem pak už specifikoval v dalším příspěvku.

Zcela scestně pak argumentuješ tím, že uživatelé jsou stejně úplně blbá stvoření a nic než vyzrazení svých hesel si nezaslouží.
Takhle jsem to neřekl. Poukázal jsem na to, že gogy27 se může snažit jak chce, ale i tak stále bude několik "hloupých" uživatelů, kteří svá hesla uloží v čitelné podobě do prohlížeče. Jenomže oni za svoji hloupost nemůžou a měl by jim někdo říct, co se může stát a nikoliv argumentovat: Je to jejich věc.

Možná by pomohlo, kdyby ses nesnažil diskusi kopnout do autu řečmi, kolik je hloupých uživatelů a jak jsi hodný na sestru. Třeba by stačilo nereagovat.
Možná by pomohlo, kdybys odpovídal věcně a ne tímto rýpavým stylem do mě. Mám pocit, že spíše kopeš diskuzi do autu ty přesně touto větou.

A už končím. gogy27 dostal odpověď na svůj dotaz v příspěvcích 2 až 5(6). Následující věci už s dotazem nesouvisí.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: