Autor Zpráva
duf
Profil *
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
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 *
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
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ý?).
utax
Profil *
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 *
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
Toto téma je uzamčeno. Odpověď nelze zaslat.

0