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

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: 24.08.2025 - 04:57