Czy dobrze kombinuje? :)
M82 - 10-11-2006 00:22
Czy dobrze kombinuje? :)
Witam, mam ogromna prosbe o sprawdzenie tego co udalo mi sie napisac... ;) Robie system logowania oparty na sesjach. Takie cos jak ponizej. Moje pytanie brzmi czy przekazywanie w zmiennej sesyjnej np tylko loginu to dobry sposob autoryzacji? Czy jest to bezpieczne? Czy powinienem przekazywac np. dwie wartosci np. login+haslo lub zupelenie inna trzecia wartosc typu $zalogowany przyjmująca wartosc tak lub nie???
Plik logowania:
<?php session_start(); include("config.php"); if(isset($_SESSION['login'])) { header("Location: mojemenu.php"); exit; } else { if (empty($_POST['wyslij'])) { include("html/formularz_logowanie.htm"); } else { $sql_sprawdzenie_login="SELECT login,haslo FROM tab_uzytkownicy WHERE login = '$login' and haslo = '$haslo1'"; $zapytanie2=mysql_query($sql_sprawdzenie_login, $polaczenie) or die ("błąd zapytania" . mysql_error()); if(mysql_num_rows($zapytanie2) == 0) { echo '<div class=text2>Podales nieprawidlowe haslo lub login</div><br>'; } else { $_SESSION['login']=$login; header("Location: mojemenu.php"); exit; } } } ?>
Inna strona:
<?php session_start(); include("config.php"); if(isset($_SESSION['login'])) { echo 'Dla zalogowanych'; } else { header("Location: logowanie.php"); exit; } ?>
Jacek Karczmarczyk - 10-11-2006 00:22
Dnia Tue, 17 Oct 2006 19:25:15 +0200, M82 napisał(a):
> Robie system logowania oparty na sesjach. Takie cos jak ponizej. Moje
A po cholerę chcesz wyważać otwarte drzwi? Systemów autoryzacji jest zylion, choćby i ten z PEARa, weź któryś z nich i po prostu użyj zamiast marnować swój czas i nerwy
-- Jacek Karczmarczyk "Podoba mi sie to, co panowie mowia, ze sie podoba..." / Rejs
[ http://larch.nazwa.pl ]
Wojtek - 10-11-2006 00:22
Jacek Karczmarczyk napisał(a): > Dnia Tue, 17 Oct 2006 19:25:15 +0200, M82 napisał(a): > > > Robie system logowania oparty na sesjach. Takie cos jak ponizej. Moje > > A po cholerę chcesz wyważać otwarte drzwi? Systemów autoryzacji jest > zylion, choćby i ten z PEARa, weź któryś z nich i po prostu użyj zamiast > marnować swój czas i nerwy > > -- > Jacek Karczmarczyk > "Podoba mi sie to, co panowie mowia, ze sie podoba..." / Rejs > > [ http://larch.nazwa.pl ]
Najprostsze dobre rozwiązanie:
if (zaloguj($login,$haslo)) { // kod strony dla zalogowanych } else { // komunikat błędu }
Działanie funkcji "zaloguj" może się w tym przypadku sprowadzać do podania wartości boolean - true lub false. Jeżeli chodzi o wysyłanie nagłówka Location - można ją stosować, o ile skrypt, do którego zostaje odesłany użytkownik, jest również zabezpieczony przed dostępem dla niezalogowanych.
pozdrawiam, Wojciech Orzech www.wojciechorzech.com
keczerad - 10-11-2006 00:22
M82 napisał(a):
> $sql_sprawdzenie_login="SELECT login,haslo FROM tab_uzytkownicy > WHERE login = '$login' and haslo = '$haslo1'";
tu lepiej przepuscic te zmienna do zapytani przez jakies filtry addslashes ..., bylo kilka goracych dyskusji na tej grupie wiec mozna zajrzec do archiwum, lub zrobic to na PDO z parametrami.
> $zapytanie2=mysql_query($sql_sprawdzenie_login, $polaczenie) or > die ("błąd zapytania" . mysql_error()); > if(mysql_num_rows($zapytanie2) == 0)
tu racej porownaj do jednego == 1 i zamien ifa na odwrotnego
PS. Jezeli zaczynasz zainteresuj sie jakimis szblonami to naprawde ulatwia zycie.
--
keczerad
http://www.e-mo.com.pl sklep w (X)HTML
.:[ ikciu ]:. - 10-11-2006 00:22
Hmm keczerad <keczerad@poczta.fm> wrote: >> $sql_sprawdzenie_login="SELECT login,haslo FROM >> tab_uzytkownicy WHERE login = '$login' and haslo = '$haslo1'";
a nie lepiej zrobic counta po id? i do sesji walnac sobie jakas flage? po co to pobierac?
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ikciu | gg: 718845 | yahoo: ikciu_irsa | www: www.e-irsa.pl
2be || !2be $this => mysql_query();
keczerad - 10-11-2006 00:22
..:[ ikciu ]:. napisał(a): > Hmm keczerad <keczerad@poczta.fm> wrote: >>> $sql_sprawdzenie_login="SELECT login,haslo FROM >>> tab_uzytkownicy WHERE login = '$login' and haslo = '$haslo1'"; > > a nie lepiej zrobic counta po id? > i do sesji walnac sobie jakas flage? po co to pobierac? > >
tak oczywiscie, nie zauwazylem, ze wyciaga znowu te dane, walidowac dane napewno trzeba.
--
keczerad
http://www.e-mo.com.pl sklep w (X)HTML
m82 - 10-11-2006 00:22
> a nie lepiej zrobic counta po id? > i do sesji walnac sobie jakas flage? po co to pobierac?
Nie do konca rozumiem o co chodzi z tym countem, z tego co wiem to ta funkcja zlicza ilosc elementow w array lub uzyta w zapytaniu SQL ilosc elementow tabeli. Jesli chodzi o ta flage to moze to wygladac tak?
(...) { $sql_sprawdzenie_login="SELECT login,haslo FROM tab_uzytkownicy WHERE login = '$login' and haslo = '$haslo1'"; $zapytanie2=mysql_query($sql_sprawdzenie_login, $polaczenie) or die ("błąd zapytania" . mysql_error()); if(mysql_num_rows($zapytanie2) == 1) { $flaga = 1; $_SESSION['flaga']=$flaga; } else { $flaga = 0 echo '<div class=text2>Podales nieprawidlowe haslo lub login</div><br>'; }
.:[ ikciu ]:. - 10-11-2006 00:22
Hmm m82 <tara82@tenbit.pl> wrote: > Nie do konca rozumiem o co chodzi z tym countem, z tego co wiem to ta > funkcja zlicza ilosc elementow w array lub uzyta w zapytaniu SQL ilosc > elementow tabeli. Jesli chodzi o ta flage to moze to wygladac tak?
conta w bazie ....
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ikciu | gg: 718845 | yahoo: ikciu_irsa | www: www.e-irsa.pl
2be || !2be $this => mysql_query();
M82 - 10-11-2006 00:22
> conta w bazie ....
a mozesz mi wytlumaczyc dokladniej? Co mi da w tym przypadku po zliczeniu pozcji w tabeli bazodanowej?
keczerad - 10-11-2006 00:22
M82 napisał(a):
> a mozesz mi wytlumaczyc dokladniej? Co mi da w tym przypadku po > zliczeniu pozcji w tabeli bazodanowej? >
to chyba nie najlepszy pomysl z tym licznniem, ja przechowuje w sesji wszystko za wyjatkiem hasla z tabeli uzytkownika, a hasla i tak nie moge przechowywac bo mam w md5 zachaszowane w tabeli userow.
--
keczerad
http://www.e-mo.com.pl sklep w (X)HTML
.:[ ikciu ]:. - 10-11-2006 00:22
Hmm keczerad <keczerad@poczta.fm> wrote: > to chyba nie najlepszy pomysl z tym licznniem, ja przechowuje w sesji > wszystko za wyjatkiem hasla z tabeli uzytkownika, a hasla i tak nie > moge przechowywac bo mam w md5 zachaszowane w tabeli userow.
tak robilem na poczatku, ale to nie ma sensu, niepotrzebnie zasmieca sie sesje. oczywiscie wszystko zalezy do czego jest to potrzebne, bo jesli potem czesto pokazuje sie dane usera, to ja robie podobnie, ale wystarczy tylko flaga - pomysl, co da ci to, ze masz reszte danych?
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ikciu | gg: 718845 | yahoo: ikciu_irsa | www: www.e-irsa.pl
2be || !2be $this => mysql_query();
keczerad - 10-11-2006 00:22
..:[ ikciu ]:. napisał(a):
> tak robilem na poczatku, ale to nie ma sensu, niepotrzebnie zasmieca sie > sesje. oczywiscie wszystko zalezy do czego jest to potrzebne, bo jesli potem > czesto pokazuje sie dane usera, to ja robie podobnie, ale wystarczy tylko > flaga - pomysl, co da ci to, ze masz reszte danych? >
za kazdym razem jak cos user zapisuje do bazy zapisuje jako on, $_SESSION['user']['id'], jak cos wyswietla tez robi to jako on lub jako firma do ktorej jest przypisany $_SESSION['user']['id_firmy'], listowanie i wyszukwianie tez robi jako on lub firma do ktorej nalezy wiec dlatego mi te zmienne, zycie mowi tez ze lepiej miec wiecej niz potem zmieniac projekt :).
--
keczerad
http://www.e-mo.com.pl sklep w (X)HTML
.:[ ikciu ]:. - 10-11-2006 00:22
Hmm keczerad <keczerad@poczta.fm> wrote: > za kazdym razem jak cos user zapisuje do bazy zapisuje jako on, > $_SESSION['user']['id'], jak cos wyswietla tez robi to jako on lub
tak jak pisalem zalezy do czego potrzebujesz sprawdzenie zalogowania usera, ja zawsze jako flage trzymam jego id
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ikciu | gg: 718845 | yahoo: ikciu_irsa | www: www.e-irsa.pl
2be || !2be $this => mysql_query();
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MS SQL 2k] Procedura sp_add_job. Dlaczego nie działa dobrze ?
baza mysql widziana dobrze pod Windowsem nie pod linuxem
Gdzie dobrze zarobić???
Jak sie przekonac, ze sie dobrze wydrukuje?
DTP Opole - Wroclaw.
Przyciski w excelu
Sortowanie tabel
=?iso-8859-2?q?Oracle_Database_link_problem_z_po=B3=B1czeniem _ze_zdaln=B1_baz=B1?=
SQL 2 tabelki
Usunąć polskie znaki
zanotowane.pldoc.pisz.plpdf.pisz.pltejsza.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|