![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 30.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam ponownie. Chciałbym prosić o sprawdzenie, a raczej odpowiedź, która pozwoli mi rozwiać wątpliwości związane z moim skryptem logowania. Wykodziłem takie proste logowanie do PA oparte o sesje. Nie o bazę danych. Nie jestem, jednak przekonany co do bezpieczeństwa tego skryptu. Czy nadaje się on do logowania i jest bezpieczny ?
login.html Kod <html> <head> <title>Prosta strona logowania</title> </head> <body> <p> <a href="tajne.php">Chroniona zawartosć</a> </p> <p>Logowanie!</p> <form action="autoryzacja.php" method="post"> Nazwa użytkownika <input type="text" name="username"> Hasło <input type="password" name="password"> <input type="hidden" name="login"> <input type="submit" value="Wyslij" /> <input type="reset" value="Wyczysć" /> </form> </body> </html> autoryzacja.php Kod <?php session_start(); // user jest zalogowany if (isset($_POST['login'])){ if (isset($_POST['username']) && ($_POST['username'] == 'admin') && isset($_POST['password']) && ($_POST['password'] == 'adminlol')) { $_SESSION['Autentykacja'] = 1; } else{ $_SESSION['Autentykacja'] = 0; } session_write_close(); header('Location: tajne.php'); } // user nie jest zalogowany if (isset($_GET['logout'])){ session_destroy(); header('Location: login.html'); } ?> tajne.php Kod <?php session_start(); ?> <html><head><title>Chroniona strona</title></head> <body> <?php if (isset($_SESSION['Autentykacja']) && ($_SESSION['Autentykacja'] == 1)){ ?> <h2>Chroniona zawartość</h2> <p>Witaj! Ponieważ jesteś zalogowanym użytkownikem, możesz wyświetlić chronioną zawartość strony.</p> <p>Możesz również się wylogować za pomocą łącza <a href="autoryzacja.php?logout">Wyloguj</a> </p> <?php } else{ ?> <h2>Nie jesteś zalogowanym użytkownikiem</h2> <p>Witaj! Ponieważ nie jesteś zalogowanym użytkownikiem, nie możesz wyświetlić chronionej zawartości strony.</p> <p>Ale możesz się zalogować za pomocą łącza <a href="login.html">Zaloguj</a></p> <?php } ?> </body> </html> Każdy komentarz oraz uwaga mile widziane. Jestem w tych sprawach początkujący, dlatego proszę was o radę. Pjoona (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Ten post edytował greenway 2.07.2008, 19:53:03 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
W tym wypadku jest to bezpieczne (zakładając, że sesje nie są we współdzielonym folderze na serwerze), bo nie dodajesz nic do bazy (w takim wypadku trzeba by było pozbyć się znaków specjalnych) ani danych nie wyświetlasz na ekranie (strip_tags lub htmlspecialchars).
Tylko jedna taka uwaga - wylogowuj tylko wtedy, kiedy użytkownik jest zalogowany i w przypadku innym niż wysłanie danych przez post. To znaczy dane mogę wysłać, jednocześnie przez post, ustawiając zmienną get o wylogowaniu. Warto byłoby wyświetlić jakiś komunikat. Co prawda może to i sytuacja, która nigdy nie nastąpi, ale może fizycznie nastąpić i w takim wypadku uważam, że warto o nią zadbać. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 03:51 |