
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 ?)
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.
Jméno svýho psa není bezpečný heslo
.
To je vtip tak fousatej že si ho vyprávěli matfyzáci již ve starém Římě... :)
... ale furt dobrej
.
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ý...
[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.
. A nebo at si to podepise a vezme si to na triko.
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
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.
Jedná se o webovou aplikaci, přístup bude jen z počítače doma a v kanceláři.
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.
Jde o to, pro koho to děláš, jestli pro to NATO, nebo pro alianční web on-line hry.
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 zabezpečený přístup do toho centra.