session

8 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Potřebuju aby si session pamatovalo heslo který se napíše do formuláře, jak to mám udělat. Mám to takhle: soubr session.php <?php session_start(); if($_GET['heslo']){ $_SESSION['heslo']=$_GET['heslo']; } ?> a login.php <? include("session.php"); ?> <head> <title>VSTUP</TITLE> </HEAD> <body bgcolor="navy"> <? $spojeni = MySQL_Connect("xxx","xxx","xxx"); if (!$spojeni){ echo "Nepodařilo se navázat spojení.\n"; } else { MySQL_Select_DB("mlspolco"); $vysledek = MySQL_Query("Select * from xxx where Jmeno='$jmeno' and Heslo='.$_SESSION['heslo'].'"); if (MySQL_Num_Rows($vysledek)!=0) { //kdyz je spravny heslo: echo " <b> Heslo je správné. Můžete vstoupit...</b> "; } else { //kdyz je spatny heslo: echo " <b> Heslo je chybné! </B> "; } } ?> </BODY> Co mám upravit?
  2. Skript jsem nezkoušel, ale vidím několik velkých bezpečnostních děr: 1. Ty posíláš heslo přes GET? 2. Vůbec heslo nešifruješ, třeba md5? 2. Proč chceš ukládat heslo ho session? Tak přece stačí dát příznak "přihlášen Ano - Ne". Já to dělám takto (náznak řešení): Formulář s přihlášením (metoda POST). Dotaz do databáze a tabulku registrovaných uživatelů a pokud autorizace projde vytvořím session s user_name: session_start(); session_register('user_name'); // možná je toto zastaralé, ale bezpečně to běží na několika webhostinzích $_SESSION[user_name] = "ferda"; Úvodní stránka: session_start(); if (isset($_SESSION['user_name']) // vstup else // zakaz
  3. a jak se dá dešifrovat md5?
  4. Samozřejmě se nedá dešifrovat, protože to není šifra.
  5. Ným: hrubou silou :) MD5 je pouze jednosměrný algoritmus a pro jeho "dešifrování" [nalezení kolizního řetězce (kolizní řetězec nemusí být původní řetězec)] potřebuješ ... ... ale to je na dlouho: http://www.google.cz/search?hl=cs&q=prolomen%C3%AD+MD5&btnG=Vyhledat+Googlem&lr= Mike: jednoduché, leč ne moc bezpečné řešení. Jí to řeším trošku jinak: sesison_start(); if($_POST['heslo'] == $heslo_z_DB) { $_SESSION[crypt($_SERVER['REMOTE_ADDR'])] = zakoduj($username_z_DB); // fce zakóduj je můj vlastní oboustranný šifrovací algoritmus (BTW: dost složitý, nepůjčuju ;) sql = '...'; // zapiš do DB čas, uživatele a IP přihlášení Header ("Location: Admin.php"); } Admin.php session_start(); if(isset($_SESSION[crypt($_SERVER['REMOTE_ADDR'])])) { //dešifruj uživatelské heslo, porovnej ho s DB a povol načtení stránky, nebo exit('Tady nemáš co dělat!'); }
  6. Ným (ml-spolco.unas.cz) "a jak se dá dešifrovat md5?" sporna otazka. Hledaji se pouze kolize. Cili pro zasilani hesla nic, ale muzes udelat script admin-zmen heslo na aaa a to posli na prilozeny mail. Problem nastava, kdyz je mail preplneny. Tez jsem videl registraci, kde misto nicku uz zadavas primo mail. Tom (manual.wz.cz) Ale ale :) Uz nevim, kde to bylo, ale nejaky program, ktery nasel prvni kolizi do 10 minut na nejakem 400MHz. Stara zprava asi rok? Non_E (rada.borec.cz) Dost sporne. Lze vypsat vsechny kolize. A clovek z te rady vybere vetsinou to spravne reseni. Rodne cislo ma take kolize, sifra je delitelnost 11: http://www.volny.cz/peter.mlich/Pr/rodnec.htm v nejhorsim pripade zkusim vsech asi 100 reseni...
  7. peta: jo aha ... ono to je dvojsmyslné. Já to myslel tak, že vysvětlovat to je na dlouho. To, že rainbow atackem lze MD5 probourat během chvilky je známá věc. Myslím, že o tom bylo něco i na Živě.cz Stane se ;)
  8. Tom (manual.wz.cz) tak to jo. Jinak ta strutura programu v podstate vychazi z toho, jakych hodnot muzou nabyvat jednotlive indexy. viz javascript a md5, kde je asi 30 rovnic asi se 4-rmi promennymi a vysledky proste muzou nabyvat jen urcitych hodnot. zkratka a dobre, md5 bylo delano jako kontrolni soucet a ne ke kryptovani :)

← Zpět na všechna témata