Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czy takie logowanie jest bezpieczne?
arosm
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 7.12.2004

Ostrzeżenie: (0%)
-----


Witam. Napisałem taki oto sobie system logowania i chciałem zasięgnąć opinii czy jest on w miarę bezpieczny. Mam tabelę Hasła z polami login, hasło,status (admin lub student), idsesji. Podczas logowania do tabeli zapisywany jest unikatowy Idsesji.

Plik authconfig.php
  1. <?php
  2.  
  3. function connect_DB()
  4. {
  5. mysql_connect(&#092;"xxxx\", \"xxxxxxxx\", \"xxxx\") or die (\"Nie połączono z serwerem!\");
  6. mysql_select_db(&#092;"xxxxxxxx\") or die (\"Nie wybrano bazy danych\");
  7. };
  8.  
  9. function check_ID($ID)
  10. {
  11. $sql = &#092;"SELECT login FROM hasla WHERE Idsesji='$ID'\";
  12. $result = mysql_query($sql) or die (&#092;"Nie pobrano wyników\");
  13. $num = mysql_numrows($result);
  14. return $num;
  15. };
  16.  
  17. ?>


Plik login.php
  1. <?php
  2.  
  3. include_once(&#092;"authconfig.php\");
  4. connect_DB();
  5. $sql = &#092;"SELECT login, haslo FROM hasla WHERE login='$login' AND haslo='$pass'\";
  6. $result = mysql_query($sql) or die (&#092;"Nie pobrano wyników\");
  7. $num = mysql_numrows($result);
  8. if ($num == 1) 
  9. {
  10. $string = crypt(rand());
  11. $idsesji = md5($string);
  12. $sql = &#092;"UPDATE hasla SET Idsesji = \"$idsesji\" WHERE login='$login' AND haslo='$pass'\";
  13. $sql_result = mysql_query($sql) or die (&#092;"NIE wykonano zapytania\");
  14. $stat = &#092;"Select status from hasla where login='$login' and haslo='$pass'\";
  15. $stat_result = mysql_query($stat) or die (&#092;"NIE wykonano zapytania\");
  16.  
  17. while ($row = mysql_fetch_array($stat_result)) 
  18. {
  19. $status = $row[&#092;"status\"];
  20. }
  21. if ($status == 'pracownik') {
  22. header(&#092;"Location: dziekanat/index.php?PHPSESSIONID=$idsesji\");
  23. } else if ($status == 'student') {
  24. header(&#092;"Location: student/index.php?PHPSESSIONID=$idsesji\"); };
  25. } else if ($num == &#092;"0\") 
  26. {
  27. header(&#092;"Location: indexbl.php\");
  28. };
  29.  
  30. ?>


Plik index.php
  1. <?php
  2.  
  3. include_once(&#092;"../authconfig.php\");
  4. connect_DB();
  5. $numrows = check_ID($PHPSESSIONID);
  6. if ($numrows == 1) {
  7.  echo 'ZALOGOWANY ADMIN';
  8. } else {
  9. echo 'BRAK UPRAWNIEŃ';
  10. }
  11.  
  12. ?>

i dalej w tym pliku
  1. <a href="index2.php?PHPSESSIONID=<? echo $PHPSESSIONID; ?> " >LINK DO PODSTRONY</a>



plik index2.php
  1. <?php
  2.  
  3. include_once(&#092;"../authconfig.php\");
  4. connect_DB();
  5. $numrows = check_ID($PHPSESSIONID);
  6. if ($numrows == 1) {
  7. echo ' ZALOGOWANY - ADMIN';
  8. } else {
  9. echo 'BRAK UPRAWNIEŃ';
  10. }
  11.  
  12. ?>


na tej stronie można to wypróbować.
login admina: admin hasło: dziekanat
login studenta: 1234 hasło: qwerty

Będę wdzięczny za wszelką krytykę i propozycje ulepszenia.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Marusz
post
Post #2





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 16.05.2003
Skąd: POLAND

Ostrzeżenie: (0%)
-----


Nie jest.

Wystarczy kliknac na ten adres:
http://www.uczelnia.bielsko.win.pl/dziekan...befd9a060ec6f2b

i juz sie jest zalogowanym.
Poza tym gdy zaloguje sie jako student, to wystarczy, ze zmienie w pasku przegladarki ze "/student/" na "/dziekanat/" i juz siedze w dziekanacie. Oczywiscie identyfikator sesji pozostaje bez zmian.

Ten post edytował Marusz 22.07.2005, 23:43:41


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 19:43