Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Strona na hasło ---> ocena skryptu
franz87
post 25.10.2009, 14:42:44
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 24.08.2009

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


Witam,zrobiłem pewną stronę dla kilku znajomych.Mam tam pewną podstronę,którą chciałbym,żeby była chroniona hasłem.
Na php się zabardzo nie znam,ale zdołałem napisać krótki skrypt,który działa,ale wymaga kilku poprawek.Działa on na jednej instrukcji warunkowej if else.
Moje pytanie,czy kod przedstawiony poniżej,jest w miare bezpieczny i może być zastosowany w takiej stronce domowej?
Na tą stronkę będzie wchodziło góra 5 osób,każdy będzie miał to samo hasło,które jest sztywno wpisane w kod skryptu,więc żadana baza danych nie jest mi potrzebna.Login'ów tez nie będzie.Oto skrypt:


  1. <center>
  2. <?php
  3. $haslo = trim($_POST['haslo']);
  4.  
  5.  
  6. echo '<form action="" method="post">
  7. <input type="text" name="haslo" style="width: 100px;" /><br />
  8. </textarea><br />
  9.  
  10. Wpisz haslo:
  11. <br>
  12.  
  13. <input type="submit" value="Zaloguj/Wyloguj" />
  14. <font>';
  15. [color="#FF0000"] \\tu do zmiennej $haslo wpisuje haslo(JAKIES_HASLO)[/color]
  16. if($haslo == JAKIES_HASŁO)
  17. {
  18.  
  19. ?>
  20.  
  21. // tu wykonuje sie kod html strony
  22.  
  23. <?php
  24.  
  25. }else
  26. {
  27.  
  28. }



Tak jak mówiłem wszystko działa,moje pytanie czy skrypt ten może być zastosowany w stronie domowej,tak aby był w miare bezpieczny?
Jest jeszcze jeden problem.Gdy po raz enty wchodze na strone i wpisuje haslo wpisując pierwszą litere hasła,system już mi podpowiada co mogę chcieć wpisać i widać poprzednie haslo ktore wpisalem.Jak temu zaradzić?

PS:Wiem ,że na necie są gotowe skrypty stron z hasłem,ale fajnieby było jakby pomogliście mi zmodyfikować ten zrobiony przeze mnie

Pozdro
Go to the top of the page
+Quote Post
netmare
post 25.10.2009, 14:57:00
Post #2





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


  1. <input type="password" name="haslo" style="width: 100px;" /><br />


i przesłane hasło porównuj z sumą kontrolną np md5. możesz też dodać jakiś szum. np
  1. echo(md5('mójszum'.$mojehasło));
wyświetli Ci sumę kontrolną.
  1. if(md5('mójszum'.$haslo) == 'tutaj suma kontrolna którą wyświetliło poprzednie echo')
Dzięki temu nikt nie pozna hasła nawet po dostaniu się do źródła pliku.

Go to the top of the page
+Quote Post
megawebmaster
post 25.10.2009, 15:06:51
Post #3





Grupa: Zarejestrowani
Postów: 143
Pomógł: 17
Dołączył: 8.11.2008
Skąd: Libiąż

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


Zmień typ pola <input> na password i po sprawie. Co do bezpieczeństwa - o ile hasło będzie miało powiedzmy 12 znaków to będzie w miarę bezpieczne. Zresztą, przy kilku osobach, które wchodzą na stronę to nie ma z tym problemu. Najprostszy system zabezpieczenia.

EDIT: Zostałem uprzedzony, a rady tam zawarte są bardzo mądre, chociaż przy takich założeniach, jakie ma autor wątku nie są konieczne.

Ten post edytował megawebmaster 25.10.2009, 15:08:53
Go to the top of the page
+Quote Post
franz87
post 25.10.2009, 16:07:11
Post #4





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 24.08.2009

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


Dzięki.Problem w tym,że na php znam się w minimalnym stopniu.Jakbyś mógł mi powiedzieć co wpisać zamiast 'moj szum' i co zamiast 'tutaj suma kontrolna którą wyświetliło poprzednie echo' ,oraz gdzie to dokładnie w kodzie wkleić.

W jakim celu mam wstawić te komendy - co one dawają?
Go to the top of the page
+Quote Post
netmare
post 25.10.2009, 19:03:18
Post #5





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


Algorytm md5 służy do tworzenia funkcji skrótu, czyli czegoś co działa w jedną stronę i nie daje się odkodować. Problem w tym że w necie są słowniki skrótów md5, więc jak wejdziesz na taką stronę i wpiszesz jakiś skrót to są szanse że wyświetli hasło odpowiadające temu skrótowi. Aby zapewnić że skrót nie wystąpi w żadnym słowniku warto dokleić sobie coś do hasła jeżeli hasło brzmi hipotetycznie "dom" to na pewno odpowiadająca mu suma figuruje w tych słownikach, a jeżeli dokleisz szum (w przykładzie 'mójszum') do hasła to powstanie skrót ze stringa 'mójszumdom', a to już raczej nie figuruje w słowniku. Wyświetlasz sobie przez echo md5('mójszumdom') to da 87cdadec60171668d99d86b5fa556d7d
i potem porównujesz czy suma kontrolna odpowiada tej powyżej
  1. if(md5('mójszum'.$haslo) == '87cdadec60171668d99d86b5fa556d7d')
  2. {
  3. // jeżeli przesłane zostało poprawne hasło
  4. }
  5. else
  6. {
  7. // w każym innym przypadku
  8. }

i pomijając stwierdzone w funkcjach skrótu występowanie kolizji masz pewność że do strony ma tylko dostęp osoba która wie że hasło do strony to 'dom', a mając nawet dostęp do źródła strony nie jest w stanie poznać hasła.
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:48