Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Panel Administracyjny - sesje
Forum PHP.pl > Forum > PHP
MGreg
Witam!
Tworzę prosty system zarządzania treścią i do logowania się do Panelu Administracyjnego chcę zastosować sesję. Podczas instalacji skryptu tworzy się tabela admin, a w niej login, hasło itp. Później, loguję sie do PA. Sesja, którą rozpoczynam wygląda tak:
Wykonuję zapytanie do sql:
  1. <?php
  2. $zapytanie = "select login, pass from admin";
  3. $wykonaj_zapytanie = mysql_query($zapytanie);
  4.  
  5. while ($wiersz = mysql_fetch_row($wykonaj_zapytanie)) 
  6.  {
  7. $login=$wiersz[0];
  8. $haslo=$wiersz[1];
  9.  }
  10. ?>

Tutaj sprawdza, czy podany login i hasło w formularzu są takie same jak w bazie danych:
  1. <?php
  2. if($_POST['login'] == $login and $_POST['pass'] == $haslo)
  3. {
  4. pa(); //Panel Adm.
  5. session_register("admin+$login+$haslo"); Rejestrowanie sesji
  6. }
  7.  
  8.  
  9. iif (!session_is_registered("admin+$login+$haslo"))
  10. {
  11. login_pa_form();
  12. }
  13. ?>

Później mam w panelu plik odpowiedzialny za konfigurację strony konfiguracja php a w nim
  1. <?php
  2. include('../mysql_config.php');
  3. pol_mysql();
  4. $zapytanie = "select login, pass from admin";
  5. $idzapytania = mysql_query($zapytanie);
  6.  
  7. while ($wiersz = mysql_fetch_row($idzapytania)) 
  8.  {
  9. $login=$wiersz[0];
  10. $haslo=$wiersz[1];
  11.  }
  12. if (session_is_registered("admin+$login+$haslo"))
  13. {
  14. Jakiś panel konfiguracyjny
  15. }
  16. ?>

Jak widać zarejestrowana sesja wygląda tak: admin+$login+$haslo, czy takie zastowanie sesji jest bezpieczne?
Pewnie dla Was to jest śmieszne, ale ja jestem początkujący winksmiley.jpg
rolnix
Wyliczaj sobie hash md5 ze stringa "$user$password" i wtedy porównuj.
Edit: poza tym rób coś w stylu

Kod
SELECT blabla from blabla WHERE login=$_POST['login'] AND pass=$_POST['pass']


Oczywiście wszystko zabezpiecz. Patrzę na "from admin"... masz oddzielną tabelę na jedną wartość?!
MGreg
W tabeli admin mam login, hasło i adres email admina smile.gif rekordy są dodawane podczas instalacji.

Teraz zrobiłem tak: jeśli dane z formularza zgadzają się z danymi w bazie danych, to rozpoczynana jest następująca sesja:
  1. <?php
  2. if($_POST['login'] == $login and $_POST['pass'] == $haslo)
  3. {
  4. pa();
  5. session_register(md5("admin$login$haslo"));
  6. }
  7. ?>

Później w pliku np. konfiguracja.php mam takie coś:
  1. <?php
  2. if(session_is_registered(md5("admin$login$haslo")))
  3. {
  4. panel_konfiguracyjny();
  5. }
  6. ?>

Czy takie coś będzie bezpieczne?
domis86
Cytat(MGreg @ 10.11.2007, 18:27:21 ) *
....Jak widać zarejestrowana sesja wygląda tak: admin+$login+$haslo...

Jaka zarejestrowana sesja? Rejestrujesz zmienną globalną o nazwie "admin+$login+$haslo" w sesji (a taka zmienna nie istnieje wiec bedzie to mialo wartosc NULL).

A w ogole to po ch** uzywacie register_globals? RTFM angrysmiley.gif

przeczytaj przykład i "cautions":
http://pl.php.net/manual/en/function.session-register.php

i za kazdym razem jak bedziesz chcial uzyc jakiejs nieznanej funkcji to -> manual


PS: Zapamietac: jak chcecie uzywac sesje to zdajcie sie na tablice $_SESSION
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.