Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem PHP+MySQL, bezpečné přihlašování pomocí session, bezpečnost hesla v databázi

Dobrý den,

právě jsem dodělal jedno administrační rozhraní pro jednoho známého, ale máme trochu obavy. Do rozhraní se smí dostat jen on a pár dalších lidí, přístup je tedy pod heslem. Vše je realizováno pomocí session. Hesla v databázi jsou zakódována pomocí funkce sha1().
Stačí podle Vás tohle zakódování?

Taky jsem někde četl, že přihlašováné přes protokol HTTP není příliš bezpečné, že odeslané údaje může někdo nějak získat - s touto souvislostí jsem četl, že ani HTTPS není moc platné, ale spíš SSL - tento pojem bohužel neznám.
Může mi někdo s tímto poradit?

Další věc je, může si heslo na více než 10 znaků někdo jentak zjistit přes nějaký program?

Poslední věc: že se mi přihlášený uživatel po 5 minutách automaticky odhlašuje, dá se nějak nastavit session? (htaccess ?)

Předmět Autor Datum
Přístup k heslu by měl mít jenom hlavní administrátor a max 2 lidi, víc ne, hrozí zneužití. To se dř…
marekdrtic 10.03.2008 20:02
marekdrtic
Ok, díky, heslo bude pro každého uživatele jiné, uživatelů bude jen pár. Díky za odpověď.
Kuncek 10.03.2008 22:36
Kuncek
HTTPS je HTTP cez SSL (alebo TLS). Ak to niekto myslí so zabezpečením webových stránok úplne vážne,…
los 10.03.2008 20:58
los
Ad HTTPS: O tomhle bohužel nic nevím, zkusím se podívat na nějaké odkazy a články na netu, kdybys ná…
Kuncek 10.03.2008 22:39
Kuncek
Heslo na 10 znaků je málo a odhlášení po pěti minutách moc dlouho. Chtělo by to heslo něco jako "FBj…
Kráťa 10.03.2008 23:20
Kráťa
něco jako "FBj&4vt6%$HD5ž9šHmíČ" Jméno svýho psa není bezpečný heslo :)).
Remca 11.03.2008 01:14
Remca
To je právě ta lstivá finta, protože je to druhý pád a to nikoho nenapadne. :-)
Kráťa 11.03.2008 02:18
Kráťa
To je vtip tak fousatej že si ho vyprávěli matfyzáci již ve starém Římě... :)
Vladimir 11.03.2008 14:28
Vladimir
... ale furt dobrej :));-).
Remca 11.03.2008 15:10
Remca
Tomu nějak nerozumím. Odhlašování nastavit na minutu? To když administrátor v administraci minutu na…
Kuncek 11.03.2008 13:36
Kuncek
Klídek, dělá si srandu ;-). Máš tam jiný problém. Když nebude přihlašování přes protokol HTTPS, může…
Rce 11.03.2008 13:45
Rce
Taky mě napadlo, že by si mohl dělat srandu, ale to jsem si nebyl jistý... Když nebude přihlašován…
Kuncek 11.03.2008 14:09
Kuncek
Sice může odchytit, ale musí na to zaměřit různé sniffery (programy, co mu budou odchytávat komunika…
Rce 11.03.2008 14:32
Rce
S timhle nezbyva nez souhlasit. Hack stranky neni z valne vetsiny pripadu chyba spravce serveru, ale…
JR_Ewing 11.03.2008 14:43
JR_Ewing
Bezpečnost skriptu, který napíšu by si myslím na tom nemusela být špatně, ještě to po mě jeden kámoš…
Kuncek 11.03.2008 16:39
Kuncek
Na odlapeni hesla jsou mnohem nachylnejsi bezdratove site. Tam totiz sireni signalu nelze nijak zabr…
JR_Ewing 11.03.2008 16:55
JR_Ewing
Jedná se o webovou aplikaci, přístup bude jen z počítače doma a v kanceláři.
Kuncek 11.03.2008 18:21
Kuncek
:-D Jak můžeš tvrdit, že bezpečnost skriptu by nemusela být tak špatně, když o zmíněných hackerských…
Rce 11.03.2008 21:53
Rce
To tvrdit samozřejmě nemůžu, jen si myslím, že běžný uživatel se tam nemá šanci dostat. Nevíš prosím… poslední
Kuncek 13.03.2008 13:16
Kuncek
Zabezpeceni se v tomhle pripade netyka jen webove aplikace, ale take samotneho nastaveni weboveho se…
JR_Ewing 11.03.2008 14:34
JR_Ewing
Jde o to, pro koho to děláš, jestli pro to NATO, nebo pro alianční web on-line hry.
Kráťa 11.03.2008 13:55
Kráťa
Ani jedno, tak veřejné to v žádném případě nebude, viz. příspěvek výše. Jen se po mě chce dobře zabe…
Kuncek 11.03.2008 14:10
Kuncek

HTTPS je HTTP cez SSL (alebo TLS). Ak to niekto myslí so zabezpečením webových stránok úplne vážne, tak sa bez HTTPS nezaobíde. Ďalšia možnosť zvýšenia zabezpečenia je povoliť prístup len zo známych IP adries. Otázka je, či je to v tomto prípade nutné.

SHA1 je dostatočne bezpečná hešovacia funkcia. Keď k nej pridáš trochu soli, tak to bude o dosť lepšie.

Doba životnosti session sa dá nastaviť pomocou session.gc_maxlifetime a session.cookie_lifetime v php.ini alebo funkciou ini_set.

Ad HTTPS: O tomhle bohužel nic nevím, zkusím se podívat na nějaké odkazy a články na netu, kdybys náhodou o nějakém článku věděl, můžeš sem hodit link.

Ad SHA1(): Co myslíš tím pojmem sůl vím, ale že to tam jde dát, to jsem nevěděl, to jsem znal jen u crypt(), a stejně jsem to nikdy nepoužil. Vyzkouším možná.

Ad session: Do php.ini se na hostingu nedostanu, ini_set mi nefungovalo, ale chyba bude asi na mojí straně když ten tvůj příspěvek čtu.

Díky za odpovědi, zase jsem o něco chytřejší.

Heslo na 10 znaků je málo a odhlášení po pěti minutách moc dlouho. Chtělo by to heslo něco jako "FBj&4vt6%$HD5ž9šHmíČ" (20 znaků), nastavit to odhlašování na minutu, jinak ty lidi z toho webu nedostaneš a budou se tam pořát přihlašovat.

Tomu nějak nerozumím.
Odhlašování nastavit na minutu? To když administrátor v administraci minutu na na nic neklikne se hned bude muset přihlašovat znovu? To mi právě těch 5 minut přišlo dost málo. Proč minutu?
No heslo jsem zamýšlel 12 znaků typu "b2wQr29lcQ96". To je málo? No kdyby chtěl někdo generovat heslo a jedno heslo by se ověřilo za 1 milisekundu (záleží asi na připojení hackera) tak vzhledem k tomu, že se použijí velká a malá písmena anglické abecedy s čísly - tj. cca 70 znaků, už teď má šanci, že heslo vygeneruje za 70^12 milisekund, protože může být asi 70^12 kombinací těchto znaků. To je hodně milionů dnů ne?

Klídek, dělá si srandu ;-).
Máš tam jiný problém. Když nebude přihlašování přes protokol HTTPS, může nějaký lump heslo odchytit a nepomůže ti sebedelší heslo ani sebesilnější hašovací funkce a výpočet doby zlomení hesla brutálním útokem je pak na nic. Je však rozumnou otázkou, jestli vůbec ten přístup bude stát někomu za tu námahu, jako kdybys programoval přihlášení do tajných informací NATO.

Taky mě napadlo, že by si mohl dělat srandu, ale to jsem si nebyl jistý...

Když nebude přihlašování přes protokol HTTPS, může nějaký lump heslo odchytit...

[mod]Na citaci použij nahoře pátou ikonku zleva (Rce)[/mod]

Tímhle jsi mi přesně potvrdil to, co jsem četl.
Jedná se o to - adresu na admin centrum bude znát maximálně pár set lidí, ale ten maník, pro kterého to dělám, chce mít přístup dobře zabezpečený, aby mu tam nikdo nešel kromě jeho a pár asistentek. A já si říkám: Proč bych se nenaučil něco nového... Můžu mu to zabezpečit a rozšířit si obzor...
Taky jsem si říkal, že bych se potom naučil OPP v PHP, ale zatím nevidím využití, protože jsem OPP nikdy nepoužíval.

Sice může odchytit, ale musí na to zaměřit různé sniffery (programy, co mu budou odchytávat komunikaci), musí někde se napíchnout na cestu dat, nejlépe aby data běžela přes jeho server, jeho AP body atd. Není to rozhodně jednoduché a když tomu dotyčnému nebude z toho koukat tučný zisk nebo aspoň nabourání do veřejného serveru, kde by změnil úvodní stránku a dmul se pýchou, tak to dělat nebude. Pakli máš takové informace, že by za to špioni platili zlatem, tak musíš použít jedině HTTPS nebo SSH přístup. Ovšem to ti stejně nemusí být nic platné, protože můžeš mít bezpečnostní díry i sám ve skriptu, aniž o nich tušíš. Třeba jednou z jedoduchých metod nabourání je SQL Injection . Další oblíbenou možností dobytí serveru je cookie stealer, vložení iframe a další. Nechci tě strašit, ale nepřeceňuješ příliš možnost odlapení hesla?

S timhle nezbyva nez souhlasit. Hack stranky neni z valne vetsiny pripadu chyba spravce serveru, ale chyba programatora aplikace na ni. A pokud nema server blba admina ( jako napriklad slovensky bezpecnostni urad ), tak ta webova aplikace bude taky jedine, co se mu tim "hacknutim" muze podarit zmenit.
Nejvic me dokaze nastvat programator webove aplikace, ktery vyzaduje novejsi apache,php,sql nez je ve stabilnich vydanich distribuci linuxu. Abych riskoval kvuli "supermegagiga" ficuram jeho webu nasazeni dostatecne neotestovanych verzi, to ho radeji s radosti posilam nekam ;-). A nebo at si to podepise a vezme si to na triko.

Bezpečnost skriptu, který napíšu by si myslím na tom nemusela být špatně, ještě to po mě jeden kámoš testoval... Ale o těch dvou věcech zmíněných výše moc nevím. Při vkládání dat do databáze z polí $_POST se to automaticky prožene funkcí addslashes, tudíž se o víc nestarám. Cookie stealer mi toho moc neříká.

No jak to tak čtu, tak to odlapení hesla asi fakt přeceňuju, ale více méně jsi mi vysvětlil to co jsem potřeboval, žádné HTTPS tedy nebude třeba.

Na odlapeni hesla jsou mnohem nachylnejsi bezdratove site. Tam totiz sireni signalu nelze nijak zabranit. Existuji nastroje i pro switchovane site, ale v obou pripadech by musel
1) mit nekdo eminentni zajem to udelat
2) byt v blizkosti pristupovych bodu a nalamat se tam
3) nebo byt na stejne siti jako clovek, ktery ten login provati

Odchytavani paketu na paternich spojich uz je vicemene nemozne, protoze se tam jen tak nekdo neodstane, nepripoji tam zarizeni, kterym by mohl poslouchat, a pristup k paternim routrum nixu nebo prislusneho webhostingu take neni jednoduchy.

Spis bych je na miste otazka, jestli ze se jedna o webovou aplikaci, ktera pobezi na serveru, jestli nahodou neni ucelem mimo jine take mobilita a dostupnost odkudkoli. Protoze mista jako internetova kavarna nebo pocitac u kolegine doma bych pro zadavani hesel, natoz do weboveho formulare bez https nepouzil.

:-D Jak můžeš tvrdit, že bezpečnost skriptu by nemusela být tak špatně, když o zmíněných hackerských technikách nic nevíš. Těch hackerských technik je ještě více a jsou založeny právě na tom, že programátor o nich neví, nebo se jim opomene bránit :-D. Máš jistotu, že kámoš, co skript testoval též ví o těchto technikách a testoval na všechny možné útoky?

To tvrdit samozřejmě nemůžu, jen si myslím, že běžný uživatel se tam nemá šanci dostat.
Nevíš prosím, kde bych se dočetl více o hackerských technikách?

Ve skriptech veškeré proměnné, které přijmu od uživatele/návštěvníka, kontroluju běžnýma funkcema, tak předpokládám, že tam jen tak někdo nějaký požadavek, co by něco zlého způsobil, nepošle.

Dík

Zabezpeceni se v tomhle pripade netyka jen webove aplikace, ale take samotneho nastaveni weboveho serveru ( https - jeste lepe okorenene o rozpuleny certifikat, kde uzivatel musi vlozit svou pulku klice, jinak se mu ani https session neotevre ) a to bohuzel webhostingu nebude tak jednoduche. Tohle uz by vyzadovalo dedikovany server ( tedy kompleti - treba virtualni, to je jedno ) server s pristupem na nej.

Zpět do poradny Odpovědět na původní otázku Nahoru