Autor | Zpráva | ||
---|---|---|---|
duf Profil * |
#1 · Zasláno: 30. 6. 2006, 15:26:39
Zdravím, potrebujem pomôcť so zaheslovaním stránok. Už som si prečítal niekoľko rôznych "návodov" a diskusií, ale nič konkrétne som sa nedozvedel. Viem, že nechcem použiť primitívne heslovanie javascriptom :-) Na stránke bude formulár na zadanie mena a hesla (užívateľov bude okolo tisíc). Mená a heslá by som mal mať možnosť zadávať a vymazať iba ja. Ešte dodám, že o PHP zatiaľ moc neviem :-) Zatial som z roznych navodov vycital, ze bude treba mat: html stranku s prihlasovacim formularom, kontrolny skript (ktory ma porovnavat zadane udaje s udajmi v databaze a bude sa vkladat do kazdej zaheslovanej stranky) a tabulku s uzivatelmi a heslami v SQL. Moze taketo nieco fungovat? Viete o nejakom dobrom a podrobnom navode ako takuto "zabezpecenu" stranku spravit? Dakujem vopred :)
|
||
Iškuda Profil |
#2 · Zasláno: 30. 6. 2006, 15:36:16 · Upravil/a: Iškuda
Já používám Session.
Pokud uživatel projde ověřením hesla, tak se mu přidělí session a na začátku každé zaheslované stránky pouze kontroluji, jesli uživatel má přidělý session. Scipt který kontroluje heslo: $heslo = addslashes($_POST['heslo']); $jmeno = addslashes($_POST['jmeno']); if ($heslo == '' or $jmeno == '') { echo('<script language="JavaScript">window.alert("Nezadal jste jméno nebo heslo!")</script>'); // Redirect zpět na stránku s přihlašovacím formulářem echo('<script language="JavaScript">window.location.href="***.php"</script>'); ie('<font color = "red"><b>Nevyplnil jste jméno nebo heslo!</b></font>'); } // Připojení k databázi include ('conn.php'); @$sql = mysql_query('SELECT * FROM users WHERE login = "$jmeno" AND heslo = "$heslo"'); if (mysql_num_rows($sql) == 0) { echo('<script language="JavaScript">window.alert("Špatné heslo nebo jméno!")</script>'); // zpět na stránku s přihlášením echo('<script language="JavaScript">window.location.href="***.php"</script>'); } else { session_register('LOGIN'); $_SESSION['LOGIN'] = 'ANO'; // Zapezpečená stránka echo('<script language="JavaScript">window.location.href="***.php"</script>'); Ověření už je jednoduché: if ($_SESSION['LOGIN'] != 'ANO') { ... } } |
||
peta Profil * |
#3 · Zasláno: 30. 6. 2006, 15:52:34
Iškuda
1. heslo je dobre zasifrovat treba do nevratneho kodu MD5 a to, pokud to jde, tak uz i predem v JS. Cili kontrolovat si, zda je JS zaple A to z jednoho a vice prostych duvodu - aby neslo heslo odchytit dekodovacem pres notebook, ze se posadis nad dedinu a nechas si zobrazovat vsechny prenosy, kde si primo muzes cist... Kdezto predem zasifrovane, na to se ti kazdy vykasle zjistovat jak to rozkodovat... - kdyz je heslo nezasifrovanea clovek ho odchyti, tipuji, ze spousta lidi pouziva totez heslo pro vice serveru, kam chodi a takovyto clovek si jen sleduje, kam chodis a jake heslo tam davas a pripadne ti tam skodi - nezasif. heslo v SQL znamena asi tolik, co predchozi bod, staci sikovne zcizit databazi a uz mam pristup treba k tvemu bankovnimu uctu. Dekuji pekne za takovou banku :) 2. michani PHP a JS, to je to nejhorsi, jak psat program, pak se v tom ani cert nevyzna. Proc bys treba nemohl mit PHP - vstup, vystup (vystupni stranka) a pak JS jako <script> location.href="<?php echo $promenna; ?>" </script> hm? 3. ale jako priklad to bohate staci... |
||
Onecar Profil |
#4 · Zasláno: 30. 6. 2006, 16:07:59
Iškuda
if ($heslo == '' or $jmeno == '') { Mýlím se, nebo je tohle snaha o zjištění, jestli je jméno a heslo vyplněno? V tomhle případě bych se tohoto "lamáctví" (odpusťte mi ten výraz, ale lepší mne opravdu nenapadá) vyhl tímto opisem. if (empty ($heslo) OR empty($jmeno)) { peta MD5 se již podařilo prolomit, tedy formulace heslo je dobre zasifrovat treba do nevratneho kodu MD5.. je silně nadnesená. Doporučuji použít funkci sha1 (řetězec); neboť se používá naprosto stejně jako emdépětka s tím rozdílem, že generuje o dost delší (a tudíž obtížněji prolomitelný) hash (tuším, že dvaceti místný?). |
||
Časová prodleva: 1 měsíc
|
|||
utax Profil * |
#5 · Zasláno: 31. 7. 2006, 02:29:19
zdravim , potřeboval bych poradit se zaheslováním stránky . Stačí mi jedno heslo pro všechny , prošel jsem spoustu odkazu a žádnej z nich jsem nepochopil .
utax@atlas.cz ICQ : 193-225-697 Předem děkuji |
||
peta Profil * |
#6 · Zasláno: 31. 7. 2006, 15:45:04
Onecar
"MD5 se již podařilo prolomit" MD5 prolomit nemuzes, to je nevratny kod. Muzes vsak pouzit bud hrubou metodu nebo inteligentni. Hruba metoda proste obsahuje (nebo generuje) tabulku hesel a proste porovnava vysledky. Cims dostanes asi 1000 reseni (mozna 10.000) Inteligentni zase vyuziva principu kodovani do md5, kde vysledku je tak 100, mozna mene. ALE kdo rika, ze mas sifrovat jednoduse? a = HxxxxExxSxxxLxxxOxx (x libovolny znak) MD5(a) prehazeni znaku podle nejakeho algoritmu v MD5 (pripadne pouzit MD5 na ten sprehazeny retezec) ulozeni do databaze. Zkus si lustit toto :))) Ale mas pravdu, doporucje se SHA1 |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0