Autor Zpráva
sveatlo
Profil
caute, chcel by som si na stranku dat sekciu, kam mozte az po prihlaseni, zaklad uz mam, no nevim ako by mal vyzerat súbor s nick-mi a heslami. nechcem aby sa tam mohol nekto zaregistrovat len tak ale len ak ho zaradim do toho zoznamu. niekde som cital, ze tento subor sa vola ok.php, no ne viem ako ma vyzerat. mohol by mi nekto pomoc, pls???

Moderátor Joker: Nahradil jsem „ok.php“ vhodnějším titulkem.
keeehi
Profil
mohl by vypadat třeba takto:
<?php $udaje=array(array("nick1","heslo1"),array("nick2","heslo2"),array("nick3","heslo3")); ?>

To, jak se bude jmenovat je úplně šumafuk. Do té přihlašovací stránky ho vložíš pomocí include('jeho_jmeno.php');
Ale jak vidíš, tak ten soubor má jen jediný řádek, takže ho klidně můžeš vložit přímo do přihlašovacího souboru.
Joker
Profil
sveatlo:
To máte něco už hotového a jen potřebujete doplnit ta jména a hesla, nebo to děláte od začátku? V druhém případě na názvu souboru celkem nezáleží.

Možná by přihlašovací údaje bylo lepší držet v databázi než v souboru.

Ještě dodám, že heslo by se nikdy nemělo držet přímo, ale jako hash (MD5 je úplné minimum)
keeehi
Profil
Joker:
No pokud to chce přidávat ručně, tak snad databáze není ani potřeba. A k té md5, je pravda, že je dobré, etické, atd. ukládat hesla zašifrovaná, ale přece nemůžu po někom chtít, aby mi řekl md5 hash jeho hesla. Jak to ten chudák má vědět? (Můžu mu na to vytvořit extra aplikaci na převod do md5 (nebo jinam) ale prostě mi to v tomto případě přijde zbytečné (tím myslím celé to hashování))
sveatlo
Profil
diky moc
imploder
Profil
keeehi:
(Můžu mu na to vytvořit extra aplikaci na převod do md5 (nebo jinam) ale prostě mi to v tomto případě přijde zbytečné (tím myslím celé to hashování))
Taková aplikace je v PHP ovšem "velice složitá" ;)
$hash = md5($heslo);

To samozřejmě nebudu chtít po uživateli, ale udělá se to na serveru.

pozn.: Zahashovat jde heslo už rovnou v prohlížeči javascriptem, jak píše Jakub Vrána v článku Bezpečné přihlašování uživatelů. Je to zajímavá možnost jak zabránit odposlouchání hesla při přihlášení při nešifrovaném spojení (a bez HTTPS), i když nevím o tom, že by se to někde prakticky používalo.
Joker
Profil
keeehi:
OK, databáze by byl trochu kanón na vrabce, nicméně alespoň by šla jednoduše udělat například možnost si heslo změnit.

k té md5, je pravda, že je dobré, etické, atd. ukládat hesla zašifrovaná, ale přece nemůžu po někom chtít, aby mi řekl md5 hash jeho hesla
Za prvé: I tak bych tohle měl na paměti. To je totiž typický vývoj- na začátku se na zabezpečení kašle, "vždyť o nic nejde...", pak je ta aplikace populární, tak se stávající jádro obalí novými funkcemi, pak znovu... a dopadne to jak s libimseti.cz
Za druhé: No jestli se kdokoliv s přístupem k souborům na serveru může přihlásit jako kterýkoliv registrovaný uživatel, to by možná bylo jednodušší zavést jedno "centrální" heslo s tím, že autorizovaným uživatelům by se prostě řeklo to heslo.

Ještě dodám, že je také možné využít HTTP autentizaci.
imploder
Profil
Joker:
Za druhé: No jestli se kdokoliv s přístupem k souborům na serveru může přihlásit jako kterýkoliv registrovaný uživatel, to by možná bylo jednodušší zavést jedno "centrální" heslo s tím, že autorizovaným uživatelům by se prostě řeklo to heslo.
Databáze není šifrovaná, takže kdo se dostane k souborům na serveru, dostane se i k obsahu databáze. Pokud ten server neběží na něčem jako Windows 95/98, tak mají ale různí uživatelé různá práva - ne všichni mají přístup všude (ke všem souborům, do všech databází).
EDIT: aha, tak to jsem úplně nepochopil, myslel jsem, že se srovnává databáze/soubory. teď už chápu.
Joker
Profil
imploder:
Databáze není šifrovaná
Mluvil jsem o hashování. Ten řádek nad citací se týkal použití databáze, ten zbytek pod citací je o hashování.
sveatlo
Profil
vdaka za vsetky rady, ale ked sa tu uz tolko rozprava o sifrovani. zacinam menit nazor, mohol by mi nekto poradit i s tymto? diki
keeehi
Profil
sveatlo:
třeba takto:
<?php $udaje=array("nick1"=>"1f3870be274f6c49b3e31a0c6728957f","nick2"=>"rt45s0be274f6c49b3e31a0c67245fgt","nick3"=>"45er60be274f6c49b3e31a0c672efs58");
if(md5($_POST["heslo"])==$udaje[$_POST["nick"]])
  //přihlášen
else
  //nepřihlášen
?>

sveatlo
Profil
ano, no ja som myslel ako vytvoriť databazu hesiel, tam kde budu ulozene a nebude to zaden txt-tak.
AM_
Profil
keeehi:
ale přece nemůžu po někom chtít, aby mi řekl md5 hash jeho hesla
Uživatel ti řekne, že chce mít heslo "pes". Ty si ho proženeš funkcí MD5 a do souboru uložíš to, co vyleze z md5("pes"). Uživatel se přihlásí, zadá "pes" a ty jen porovnáš
if ($uzivatel['jan_novak']['heslo'] == md5($_POST['heslo'])) ...

a uživatel ani nemusí tušit, že nějaký hash používáš.
md5 bohatě stačí, je sice prolomená na kolize, ale to vadí jenom u ověřování pravosti souborů (lze podstrčit jiný se stejným md5), u hesel je to celkem jedno, rychlý dešifrovací algoritmus znám není.

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: