Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][MySQL][PHP]System logowania
viamarimar
post
Post #1





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


1. Skrypt z jakiegos powodu gdy dodalem hash przestal dzialac?
2. Co mozna dodac jeszcze aby logowanie bylo bezpieczniejsze
3. Komunikat o zlym hasle nigdy nie wystepuje?
Nawet jak login jest ok a haslo bledne wywala ze odrazu konta nie ma w bazie czyli komunikat =1
  1. echo "Złe hasło, proszę spróbować ponownie";
  2. header("location: index.php?komunikat=2");


Jak rozwiazac kwestie tego zeby wgl zaczelo logowac, rejestracja uzywa tego samego hasha, no i punkt drugi tu juz inwencja i pomysly.

  1. ...
  2. <?php
  3. if(isset($_POST['loguj']) && ($_POST['loguj'])==1) {
  4.  
  5. //filtrowanie
  6. $_POST['login']=mysql_real_escape_string(addslashes(htmlspecialchars(trim($_POST['login']))));
  7. $_POST['haslo']=mysql_real_escape_string(addslashes(htmlspecialchars(trim($_POST['haslo']))));
  8.  
  9.  
  10. $sol = md5("abc"); //sól użytkownika pobierana z bazy
  11. $sol2 = sha1("def"); //sól dodatkowa
  12. $hash = hash('sha512', $_POST['haslo'] . $sol . $sol2);
  13.  
  14.  
  15. $userExists = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login = '".$_POST['login']."' AND pass = '$hash'"));
  16.  
  17. if ($userExists[0] == 0) {
  18. // Użytkownik nie istnieje w bazie
  19. header("location: index.php?komunikat=1");
  20. }
  21. else {
  22. // Użytkownik istnieje
  23. $_SESSION['zalogowany'] = true;
  24. $_SESSION['login'] = $_POST['login'];
  25.  
  26. $user = $_SESSION['login'];
  27. mysql_query("UPDATE `users` SET `logowanie`=NOW(),`online`='1' WHERE login='$user'") or die(mysql_error());
  28.  
  29. header('Location: index.php');
  30.  
  31. echo '<p class="success">Zostałeś zalogowany. Możesz przejść na <a href="index.php">stronę główną</a></p>';
  32. }
  33. }
  34. else{
  35.  
  36. ?>
  37. <form class="form-signin" action="s_logowanie.php" method="POST">
  38. <div class="form-group">
  39. <label>Login</label><input class="form-control" name="login" type="text" required />
  40. </div>
  41. <div class="form-group">
  42. <label>Haslo</label><input class="form-control" name="haslo" type="password" required />
  43. </div>
  44. <div class="row">
  45. <div class="col-xs-6 col-md-6"><input type="reset" value="Wyczyść" class="btn btn-warning btn-block btn-sm" ></div>
  46. <div class="col-xs-6 col-md-6">
  47. <input type="hidden" name="loguj" value="1" />
  48. <input type="submit" value="Zaloguj" class="btn btn-success btn-block btn-sm">
  49. </div>
  50. </div>
  51. </form>
  52.  
  53.  
  54.  
  55.  
  56.  
  57. <?php
  58. }
  59. ...
  60. ?>


Ten post edytował viamarimar 29.11.2014, 15:48:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
viamarimar
post
Post #2





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


Co stosuje bo 128 wydaje sie za malo:


1. "sol1" Napierw generuje losowy klucz dla kazdego uzytkownika inny
  1. //losowy ciag
  2. $s = substr(str_shuffle(str_repeat('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',5)),0,10);

2. klucz ten jest szyfrowany w md5
3. "sol2" 10 znakowa szyfrowana sha1
4.haslo jest haszowane i dopisywane jest sol1 +sol2
5. haszowana calosc w md5

Dlaczego tak sie bawie wgl? Bo mam duzo porabanych kolegow ktorzy chca mi udowodnic jacy to oni nie sa "super hakierzy".

Gdzies czytalem ze na samo md5 potrzeba 32 znaki w varchar?
na sha1 nie wiem? ktos wie?
Lepiej haslo trzymac w char czy varchar jaka roznica?
Wiec ile najlepiej i nie za malo znakow? (dla takiego systemu)

Ten post edytował viamarimar 1.12.2014, 09:41:36
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 08:17