Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]MySQL]Skrypt logowania, Proszę o wyrażenie swojego zdania na ten temat .
kamillo121
post
Post #1





Grupa: Zarejestrowani
Postów: 127
Pomógł: 6
Dołączył: 26.07.2009

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


Witam , napisałem sobie skrypt logowania i nie wiem czemu ale wydaje mi się, że jest strasznie cienko zabezpieczony , tzn jest to mój drugi skrypt (po próbach ) i nie spodziewam się skryptu nie do obejścia ale takiego chociaż dość dobrego , możecie zerknąć na to i dać swoją opinie ? (tylko bądźcie wyrozumiali dla mnie, proszę (IMG:style_emoticons/default/smile.gif) (wiem, że jest do tego dział ale ja bym w razie czego chciał jakąś pomoc co do tego skryptu, tzn jakieś inne sposoby czy coś ) )
  1.  
  2. <?php
  3. if(!isset($_REQUEST['action'])){
  4. header('Location: index.php?page=news');
  5. }else{
  6. switch($_REQUEST['action']){
  7. case 'Zaloguj':
  8. if(!isset($_POST['login']) OR !isset($_POST['haslo']) OR strlen($_POST['login'])<1 OR strlen($_POST['haslo'])<1){
  9. header('Location: index.php?page=news');
  10. }else{
  11. if(preg_match('/^[a-zA-Z0-9\_\-]{3,20}$/D', $_POST['login']) AND preg_match('/^[a-zA-Z0-9]{4,20}$/D', $_POST['haslo'])){
  12. include 'conn.php';
  13. $login=stripslashes($_POST['login']);
  14. $haslo=stripslashes($_POST['haslo']);
  15. /// Tutaj dodałem według wskazówek szanownych forumowiczów przepuszczanie przez sha1 hasła :)
  16. $sql="SELECT * FROM user WHERE login='".$login."' AND haslo='".$haslo."' LIMIT 1 ";
  17. $result=mysql_query($sql)
  18. unset($sql);
  19. if($row=mysql_fetch_array($result)){
  20. $_SESSION['login']=$row['login'];
  21. $_SESSION['lvl_acc']=$row['lvl_acc'];
  22. $sql="UPDATE user SET ostatnia_wiz='".date("Y-m-d H:i:s", time())."' " .
  23. "WHERE id=".$row['id']." ";
  24. echo '<div id="kom"><div id="tab">Komunikat</div>';
  25. echo 'zalogowano<br><br>';
  26. echo '<a href="index.php?page=news">Powrót na stronę głowną </a>';
  27. echo '</div>';
  28. }else{
  29. echo '<div id="kom"><div id="tab">Komunikat</div>';
  30. echo 'Złe hasło bądź login<br> ';
  31. echo '<a href="index.php?page=news">Powrót na stronę głowną </a>';
  32. echo '</div>';
  33. }
  34. }else{
  35. echo '<div id="kom"><div id="tab">Komunikat</div>';
  36. echo 'Złe dane<br> ';
  37. echo '<a href="index.php?page=news">Powrót na stronę głowną </a>';
  38. echo '</div>';
  39. }
  40. }
  41. break;
  42. case 'Wyloguj':
  43. echo '<div id="kom"><div id="tab">Komunikat</div>';
  44. echo 'Wylogowano<br>';
  45. echo '<a href="index.php?page=news">Powrót na stronę głowną </a>';
  46. echo '</div>';
  47. break;
  48. default:
  49. header('Location: index.php?page=news');
  50. break;
  51.  
  52. }
  53. //koniec switch'a
  54. }
  55. ?>


(To jest sam skrypt który otrzymuje dane z formularza, przetwarza i loguje )

Ten post edytował kamillo121 24.08.2009, 15:30:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Shlizer... o przypadku dla userów napisałem
Cytat
i nie wprowadzać zamieszania dla pozostałych użytkowników


Ataki brute-force przerywa się szybko i sam o tym zapewne wiesz. Blokada wykonywania po X nieprawidłowych próbach. W debianie masz po 3 błędnych logowaniach minimum 5 minut wyłączoną możliwość logowania na danego usera. To samo się w części portali stosuje. Po X próbach Y minut niemożliwości zalogowania. Może i się użytkownik wściekać, że nie może dostać do serwisu, ale skuteczność brute-force spada w sposób przeogromny.

Dane krytyczne to dla mnie dane od których zależy bezpieczeństwo użytkownika lub serwera. W tym portalu jest dla użytkownika nim tylko hasło, ale w serwisach z danymi osobowymi już poważnie bym zastanawiał się nad stosowaniem kryptografii. Oczywiście tylko w przypadku jeśli mają one nie być jawne, bo przecież na N-K danych osobowych multum, ale akurat ten serwis ma nieco inny profil działalności. Jednak w przypadku zastosowań biznesowych kryptografię bym próbował implementować.

Co do hasha i szyfru to zastosowałem skrót myślowy. Hash można bowiem uznać za szyfr, gdyż z ciągu znaków takiego samego otrzymujemy ten sam ciąg wynikowy. Dlatego napisałem, że jest to szyfr jednostronny. Nie ma bowiem algorytmu potrafiącego z hasha odtworzyć ciąg wejściowy. Zauważ jednak, że przechowuje on mimo wszystko informację o ciągu wejściowym, gdyż użycie tego samego algorytmu pozwala metodą porównywania uzyskać ostatecznie ciąg wejściowy. Jest to więc dla mnie szyfrowanie danych w pewnym stopniu. Inna sprawa, że ten sam hash teoretycznie może być efektem różnych danych wejściowych. Stąd nazwa "skrót" dla hash jest jest jak najbardziej adekwatna.
Go to the top of the page
+Quote Post

Posty w temacie
- kamillo121   [PHP]MySQL]Skrypt logowania   24.08.2009, 14:41:05
- - sweter   Zabezpiecz hasło funkcją md5   24.08.2009, 14:50:18
|- - Shlizer   Login użytkownicy powinni mieć unikatowy nie ze wz...   24.08.2009, 17:11:47
- - kamillo121   A czytałem w innych tematach tutaj, że w nowych sk...   24.08.2009, 14:52:05
|- - fifi209   Cytat(kamillo121 @ 24.08.2009, 14:52...   24.08.2009, 14:55:57
- - kamillo121   Fifi209 dzięki , a takie pytanko, jak zastosuję to...   24.08.2009, 14:58:34
- - thek   Jeśli mowa o hasłach to niekoniecznie musi być sha...   24.08.2009, 15:12:20
|- - cros   Cytat(thek @ 24.08.2009, 16:12:20 ) ....   24.08.2009, 15:53:28
- - kamillo121   Czyli tak , narazie zmieniam przy rejestracji, że ...   24.08.2009, 15:16:49
- - sniffer32   Cytathasło i w sesji też je trzymał zakodowane w ...   24.08.2009, 15:20:25
- - kamillo121   No ja hasła, nigdzie nie potrzebuje , do indentyfi...   24.08.2009, 15:22:39
- - sniffer32   [PHP] pobierz, plaintext  $hashPasswd = sha1...   24.08.2009, 15:30:00
- - kamillo121   znaczy że przy haśle otrzymanym od użytkownika prz...   24.08.2009, 15:32:06
- - sniffer32   a wiesz co to są "tęczowe tablice" ?   24.08.2009, 15:33:49
- - kamillo121   NIe ale przewertowałem na szybcika google i coś w ...   24.08.2009, 15:35:59
- - sniffer32   po dodaniu soli nic nie da skopiowanie hash'u ...   24.08.2009, 15:38:46
- - kamillo121   a ta sol to może byc np : $liczby = range(1,...   24.08.2009, 15:41:52
- - sniffer32   a jak później porównasz hash z logowania z hashem ...   24.08.2009, 15:47:16
- - kamillo121   No już teraz jak spróbowałem tego użyć to już wiem...   24.08.2009, 15:48:51
- - sniffer32   Cytathaslo powinno sie przesylac juz zakodowane......   24.08.2009, 15:56:11
- - thek   Sól, salt czy jakkolwiek to nazwać a o czym w popr...   24.08.2009, 16:31:24
|- - fifi209   Cytat(thek @ 24.08.2009, 16:31:24 ) W...   24.08.2009, 17:26:05
- - kamillo121   Wiecie co ,nie żebym spamował czy coś ale z tego t...   24.08.2009, 19:47:55
- - fifi209   Napisać session handlera, masz nawet artykuł o tym...   24.08.2009, 19:50:16
- - kamillo121   Dzięki Już się wgłębiam ....   24.08.2009, 19:52:30
- - thek   Shlizer... o przypadku dla userów napisałem Cytati...   24.08.2009, 20:21:35
- - kamillo121   EEE, że znowu zmienię temat rozmowy .. Przeczytałe...   24.08.2009, 20:30:52
- - sniffer32   chyba tak: [PHP] pobierz, plaintext  $obiekt...   24.08.2009, 20:40:09
- - kamillo121   Nie mam pojęcia jak to dostosować , mam nadzieje,...   24.08.2009, 20:44:14
- - sniffer32   ale ta klasa jest pod php4, phpclasses.org , googl...   24.08.2009, 20:47:37
- - kamillo121   No trudna, dzięki za pomoc ale nie umiem ... Za tę...   24.08.2009, 20:57:25


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: 5.10.2025 - 16:02