Prechod zo sha1 na lepší algoritmus – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Prechod zo sha1 na lepší algoritmus – PHP – Fórum – Programujte.comPrechod zo sha1 na lepší algoritmus – PHP – Fórum – Programujte.com

 

PHP-čkar
~ Anonymní uživatel
2 příspěvky
3. 12. 2016   #1
-
0
-

Ahojte, potreboval by som upraviť algoritmus. Doteraz som využíval sha1 na ukladanie hesla, jednoducho je sha1 pred heslom v registrácii a taktiež aj pri prihlásení a skrátka skúma, či sa to zhoduje, skúsil som sha512, nešlo mi to, po odoslaní formulára sa formulár nezobrazil. Pri crypt mi urobila iný hash aj pri tých istých heslách. Potreboval by som nejaký štandard, ktorý sa využíva, ktorý je silný a počíta sa pomalšie ako md5 atď.  
V registrácii:  

$ins3 = mysqli_query($con,"INSERT INTO `user` (`username`,`password`,`email`,`fraction`,`activated`,`code`) VALUES ('$username', '".sha1($password)."', '$email', '$frakcia', 0, '$code')") or die (mysqli_error($con));

Pri prihlásení:
 

 $login_check = mysqli_query($con,"SELECT `id` FROM `user` WHERE `username`='$username' AND `password`='".sha1($password)."'") or die (mysqli_error($con));

Ako vhodne by som to mal nahradiť? Nerobím s týmito vecami denne potreboval by som niečo ako password_hash a verify so saltom, ak by ste mi vedeli pomôcť, skúšal som príklady z php.net ale bezúspešne.

Nahlásit jako SPAM
IP: 84.16.53.–
ondrej39+1
Věrný člen
4. 12. 2016   #2
-
0
-

#1 PHP-čkar
Použij standardní PHP funkce password_hash a password_verify. Jinak ten tvůj kód je možná náchylný na SQL Injection. Pokud ten kód pro ověření hesla používáš v produkčním prostředí a neescapuješ proměnné, tak by ses do takového systému mohl dostat, aniž bys heslo skutečně znal. V rámci bezpečnosti mrkni i na prepared statements.

Nahlásit jako SPAM
IP: 46.39.172.–
Inject all the dependencies!
peter
~ Anonymní uživatel
4016 příspěvků
5. 12. 2016   #3
-
0
-

:) Si myslim, ze sha1 je dostacujici pro zatim nefungujici projekt. Zbytecne ztracis cas, ktery muzes venovat ostatnim castem hry. Az tam budes mit tak 50 lidi, tak pak ma smysl se tim zabyvat, muzes tydny predelavat prihlasovani v testovaci slozce. Dokonce ji muzes zverejnit, aby ti to obcas otestovali hraci nez prepises oficialni verzi.

Vis, jak probiha slovnikovy utok?
- zkusi se nejcastejsi hesla, 1000
- zkusi se md5(nej. hesla)
- zkusi se md5(md5(nej. hesla))
- podobne tabulky pro sha1
- podobne pro kombinace md5(user + nej. hesla)
To mas treba 50.000 moznosti. Takze, tak jak to mas napsane, tam neni zadna bezpecnost.
- Minimalne bys tam musel pridat dalsi retezec.
- Pak bys musel zabezpecit, aby uzivatel nezustal nekde prihlaseny, protoze prohlizec si do zavreni okna vetsinou drzi session.
- Take heslo nejcasteji odkouka sestra, kamarad, kdyz ti stoji za zady.
- A kdyby slo o komercni sw, tam se to resi nejcasteji tak, ze dojdes do firmy. Tvrdis, ze jsi objednany IT a mas neco provest na pc, ze za 15 minut problem vyresis, staci, kdyz se ti uzivatel naloguje. Idealni cas je pred ucetni uzaverkou, kdy ta pani nema cas. Ze ty si tam nahravas z flashky malware a ruzne odchytavace klavesnice posilajici text nesifrovane nekam na inet, to ji nezajima, nemusi si vsimnout :)

 
SQL injection

$login_check = mysqli_query($con,"
SELECT `id` 
FROM `user` 
WHERE `username`='$username' AND `password`='".sha1($password)."'
") or die (mysqli_error($con));

WHERE `username`='$username'
Doufam, ze mas $username dobre escapovane, protoze, kdybych ti do formularoveho policka zadal
$username = ' OR '1'='1
dostanes sql prikaz, podminku
WHERE `username`='$username'
WHERE `username`='' OR '1'='1' -- prvni je false, ale druha podminka je true
:) Pak mne prihlasi na prvniho uzivatele. Samozrejme, ty tam mas dal jeste heslo, ale toho by se dalo take zbavit jiste nejakou fintickou, treba " nebo ;"
"...WHERE `username`='' OR '1'='1'" - string zacina dvojitou uvozovkou a take ji konci.

Nahlásit jako SPAM
IP: 2001:718:2601:26c:2d3e:88...–
Martin
~ Anonymní uživatel
1602 příspěvků
8. 12. 2016   #4
-
0
-

Skus to: http://lfs-league.php5.sk/ Verím, že je to good zabezpečené.

Nahlásit jako SPAM
IP: 147.232.182.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 57 hostů

Podobná vlákna

Co je lepsi? — založil office

Co je lepší? — založil peťan

Která je lepší — založil Roman

Lepší directsound — založil honzik31

Lepší zápis podmínky — založil Kuba

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý