Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Autentykacja, jak ją zabezpieczyć
Daniel 2006
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 30.04.2006

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


witam

Napisałem sobie skrypt, który dokonuje autentykacji. Skrypt porównuje login i hasło które są zawarte w bazie danych następnie danego urzytkownika przekierowywuje na daną stronę.

oto skrypt cały:

  1. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  2.  
  3. BODY { font-family : Times New Roman; font-size: 16pt; COLOR: #000000}
  4. TD { font-family : Verdana; }
  5. A { text-decoration : none}
  6. A:link {COLOR: #006699; TEXT-DECORATION: none}
  7. A:visited {COLOR: #006699; TEXT-DECORATION: none}
  8. A:active {COLOR: #006699; TEXT-DECORATION: none}
  9. A:hover {COLOR: #00FF00; TEXT-DECORATION: none}
  10.  
  11. <style type="text/css">
  12. <!--
  13. body {
  14. BACKGROUND: #FFFFF3;
  15.  
  16. margin-left: 0px;
  17. margin-top: 0px;
  18. margin-right: 0px;
  19. margin-bottom: 0px;
  20. }
  21. -->
  22. <LINK REL="SHORTCUT ICON" href="ikona.jpg">
  23. </head>
  24.  
  25. <br><br><br>
  26. <form action="index.php" method="post">
  27. <font size="5">Login: </font><input type="text" name="loginf" size="30"> <br><br>
  28.  
  29. <font size="5">Hasło: </font><input type="text" name="haslof" size="30"> <br><br>
  30. <input type="submit" value="Zaloguj" >
  31.  
  32. <?
  33. if ($loginf=="" and $haslof=="")
  34. {
  35. echo "<br><br>";
  36. echo "<font color = 'red' size = '5'>Uzupełnij pole Login i Hasło</font>";
  37. }
  38. else
  39. {
  40. if ($loginf=="" )
  41. {
  42. echo "<br><br>";
  43. echo "<font color = 'red' size = '5'>Uzupełnij pole Login</font>";
  44. }
  45. else
  46. {
  47. if ($haslof=="" )
  48. {
  49. echo "<br><br>";
  50. echo "<font color = 'red' size = '5'>Uzupełnij pole Hasło</font>";
  51. }}}
  52.  
  53. if ($loginf and $haslof != "")
  54. {
  55. $baza = "user";
  56. $tabela = "klienci";
  57. $connection = @mysql_connect("localhost", root, "krasnal") or die ("Blad logowania na serwer mysql");
  58. $wybierz = mysql_select_db($baza, $connection) or die ("Podana baza nie istnieje");
  59. $pokaz = "select login, haslo from klienci where login like\"$loginf\" and haslo like\"$haslof\"";
  60.  
  61. $sprawdz = mysql_query($pokaz, $connection) or die ("Blad !");
  62.  
  63. $wiersz = mysql_fetch_array($sprawdz);
  64.  
  65. $val1 = $wiersz['login'];
  66. $val2 = $wiersz['haslo'];
  67.  
  68. if ($val1 == $loginf and $val2 == $haslof)
  69. {
  70. if ($val1 == aaa)
  71. {
  72. echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=http://localhost/test/user1.php\">";
  73. }
  74. if ($val1 == ccc)
  75. {
  76. echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=http://localhost/test/user2.php\">";
  77. }}
  78. else
  79. {
  80. echo "<br><br>";
  81. echo "<font color = 'red' size = '5'><center>Logowanie nie powiodło się, sprawdź Login i Hasło </center></font>";
  82. }}
  83. ?>
  84.  
  85. </form>
  86. </body>
  87. </html>


Skrypt działa tak jak trzeba, ale jest jeden problem (IMG:http://forum.php.pl/style_emoticons/default/mad.gif) mianowicie po udanej autentykacji użytkownik jest przekierowywany na strone np: http://localhost/test/user1.php i wszystko ok ale następnym razem może ktoś może wpisać do przeglądarki link http://localhost/test/user1.php i znajdzie się na stronie bez logowania (IMG:http://forum.php.pl/style_emoticons/default/ohmy.gif)
oczywiście początek http://localhost/ podałem dla przykładu

Jak zabezpieczyć coś takiego aby dostęp do strony np: http://localhost/test/user1.php był dostępny tylko przez przejście przez logowanie (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)


z góry dzięki
pozdrawiam Daniel
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
My4tic
post
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 4.08.2005

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


Możesz użyć sesji. Po udanym logowaniu ustawiasz w sesji status usera na TRUE. Na stronach, które mają być dostępne wyłącznie dla zalogowanych sprawdzasz czy:

  1. <?php
  2. if ( $_SESSION['bUserStatus'] == TRUE ) {...} // wyświetl content
  3. else {...} // logowanie
  4. ?>


http://pl.php.net/manual/pl/ref.session.php" title="Zobacz w manualu php" target="_manual

Btw.
Chyba autoryzacja a nie 'autentykacja'... (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif)
Go to the top of the page
+Quote Post
Daniel 2006
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 30.04.2006

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


ok, tyle że coś mi nie działa

w kodzie dodaje :

  1. if ($val1 == aaa)
  2. {
  3.  
  4. $_SESSION['bUserStatus'] = True;
  5.  
  6. echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=http://localhost/test/user1.php\">";
  7. }


w pliku user1.php dodaję :

  1. <?php
  2. if ( $_SESSION['bUserStatus'] == TRUE )
  3. {
  4.  
  5. }
  6. else
  7. {
  8.  
  9. }
  10. ?>
  11.  
  12. <h1> Private user 1 </h1>


Jak się loguję to wsytko działa ale nadal można obejrzeć stronę wpisując do przeglądarki link strony user1 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
My4tic
post
Post #4





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 4.08.2005

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


Powinni tu biczować za nie czytanie linków, które sie dostaje w odpowiedzi na pytanie. (IMG:http://forum.php.pl/style_emoticons/default/mad.gif)

Wiesz jak działają sesje? Jeśli nie to przeczytaj link, który podałem we wcześniejszej poście. Jeśli Ci sie nie chce to poszukaj sobie gotowego skryptu i oszczędz ludziom troche zdrowia.
Go to the top of the page
+Quote Post
Daniel 2006
post
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 30.04.2006

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


och wybacz,
linka już czytam, z php dopiero zaczynam więc stąd ta niewiedza dlatego kolejny raz poprosiłem o poprawkę.

Ten post edytował Daniel 2006 7.09.2006, 20:26:34
Go to the top of the page
+Quote Post
macbirdie
post
Post #6





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 7.09.2006
Skąd: Poznań

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


Cytat(My4tic @ 7.09.2006, 18:45:50 ) *
Btw.
Chyba autoryzacja a nie 'autentykacja'... (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif)

Właściwe tłumaczenie "autentykacji", to "uwierzytelnianie", a autoryzacja to autoryzacja. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
My4tic
post
Post #7





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 4.08.2005

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


Cytat(macbirdie @ 8.09.2006, 09:06:40 ) *
Właściwe tłumaczenie "autentykacji", to "uwierzytelnianie", a autoryzacja to autoryzacja. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)


Jakie tłumaczenie? Takiego słowa nie ma w języku polskim.

Słownik

Robimy 'mały' (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) OT więc lepiej z tym skończyć.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 12:13