![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 18.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie (o moj pierwszy post na forum),
Chcialbym prosic o opinie uzytkownikow na temat skryptu logowania, ktory niedawno napisalem (zalozenie bylo takie, ze calosc ma byc w jednym pliku) Kod <?php error_reporting(E_ALL); session_start(); if (!isset($_SESSION['initiated'])) { // Sprawdzam czy gosc ma juz rozpoczeta sesje session_regenerate_id(); // Generuje nowy SSESID - unikam prostych 'Session fixation' $_SESSION['initiated'] = 1; // Teraz juz na pewno jest sesja $_SESSION['logged_in'] = 0; // Gosc nie jest zalogowany } if ($_SESSION['logged_in'] == 1) { // (*) Gosc jest zalogowany pokaz mu zasoby docelowe echo ('42 - The answer to the Ultimate Question of Life, the Universe, and Everything'); // zasob docelowy } else { // Gosc nie jest zalogowany if(isset($_POST['submit_check'])) { // Gosc wyslal formularz $login = strip_tags($_POST['login']); $password = strip_tags($_POST['password']); if(check_login($login, $password)) { // Gosc podal poprawne dane session_regenerate_id(TRUE); // Generuje nowy SSESID i usuwa stary (!) - unikam 'Session fixation' $_SESSION['logged_in'] = 1; // Gosc jest zalogowany header("Location: login.php"); // Odswiezam strone zeby gosc mogl zobaczyc to co jest pod (*) } else { // Gosc podal dane niepoprawne echo ('Error! '); echo ('<a href="login.php">Zaloguj jeszcze raz</a>'); } } else { // Gosc nie wyslal formularza echo ('<form enctype="multipart/form-data" method="post" action="login.php"> <input type="hidden" name="submit_check" value="1"/> <input name="login" /> <input name="password" /> <input type="submit" value="Log in" /> </form>'); } } function check_login($login, $password) { // Oczywiscie tutaj normalnie jest bardziej if($login == 'adam' && $password == 'brawo') { // zawily skrypt wyciagajacy dane z bazy return TRUE; } else { return FALSE; } } ?> Uprzejmie prosze o komentarze - najbardziej zalezy mi na krytycznych. Chodzi mi glownie o zabezpieczenie przed atakami typu Session Fixation i Session Hijacking. Z gory dziekuje za uwagi i pozdraawiam serdecznie, Adam |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Od tego jest specjalne subforum Ocen - przenoszę
p.s Witaj na forum : ) -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 472 Pomógł: 8 Dołączył: 14.03.2004 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli skrypt ma działać na bazie danych na wstępie bym zrobił tak:
zamieniłbym
na
-------------------- I need TP for my bunghole!!!
Mój nowy przyjaciel - tytanowa płytka na stałe ------------------------------------------------------ AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 662 Pomógł: 45 Dołączył: 26.03.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ale musisz pamiętać że mysql_escape_string działa tylko jeśli jesteś połączony z bazą
![]() ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 472 Pomógł: 8 Dołączył: 14.03.2004 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Ale musisz pamiętać że mysql_escape_string działa tylko jeśli jesteś połączony z bazą ![]() ![]() W komentarzu jest napisane że dane będą wyciągane z bazy. Dlaczego ma używać empty zamiast isset ? -------------------- I need TP for my bunghole!!!
Mój nowy przyjaciel - tytanowa płytka na stałe ------------------------------------------------------ AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 662 Pomógł: 45 Dołączył: 26.03.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
isset sprawdza czy zmienna istnieje, empty czy jest pusta. Wiec jeśli dasz
Kod $zmienne = ''; isset przejdzie, a empty nie. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 12:49 |