Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> [php] System logowania i sesje
idas
post 26.03.2007, 15:41:34
Post #21





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 23.03.2007

Ostrzeżenie: (0%)
-----


Wlasnie sie przekonalem, ze zmienne sesyjne u mnie nie dzialaja:/
Zainstalowalem serwer Apache u siebie na kompie. Jak je wlaczyc?
Go to the top of the page
+Quote Post
strife
post 26.03.2007, 18:14:10
Post #22





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Cytat(idas @ 26.03.2007, 16:41:34 ) *
Wlasnie sie przekonalem, ze zmienne sesyjne u mnie nie dzialaja:/
Zainstalowalem serwer Apache u siebie na kompie. Jak je wlaczyc?


Nie działają czyli co dokładniej się dzieje? Jakiś błąd ? Przeczytaj mojego posta w tym temacie, jak tak zrobisz to powiedz czy nadal Ci zmienne sesyjne nie działają.

Pozdrawiam!


--------------------
Go to the top of the page
+Quote Post
idas
post 26.03.2007, 20:05:51
Post #23





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 23.03.2007

Ostrzeżenie: (0%)
-----


Yo!
Jednak sesje dzialaja. Jednak mam pewne pytanie:
Jak przepisac zmienna z tablicy $_SESSION?
Bo np. mam zmienna
  1. <?php
  2. $_SESSION['login_ok'];
  3. ?>
i proba
  1. <?php
  2. $login = $_SESSION['login_ok'];
  3. ?>
nie przynosi pozytywnych rezultatow :/
Go to the top of the page
+Quote Post
strife
post 26.03.2007, 21:04:46
Post #24





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


A jakich rezultatów się spodziewasz, musi działać.

  1. <?php
  2. session_start(); // moze zapomniales?
  3. $_SESSION['login'] = 'dupa';
  4. $login = $_SESSION['login'];
  5. echo '<pre>';
  6. var_export( $login );
  7. echo '</pre>';
  8. ?>


Nie działa? Napisz coś więcej, bo:

Cytat
nie przynosi pozytywnych rezultatow :/


Naprawdę mało nam mówi. winksmiley.jpg

Pzdr.


--------------------
Go to the top of the page
+Quote Post
idas
post 28.03.2007, 12:27:15
Post #25





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 23.03.2007

Ostrzeżenie: (0%)
-----


HeHe nie no o session_start(); to pamietalem;)
Juz wszystko dziala poprawnie.
Ale mam takie pytanie: powiedzmy loguje sie uzytkownik na strone z jednego kompa i dostaje unikalny ID sesji. Mam przez to rozumiec, ze jesli z jakiegos innego kompa na strone zaloguje sie inny uzytkownik to on takze dostanie unikalny ID sesji [inny od tego powyzej] i oboje beda mogli przegladac zawartosc strony, tak?
Innymi slowy: wszystko oparte jest o ten identyfikator sesyjny?
Go to the top of the page
+Quote Post
strife
post 28.03.2007, 16:14:17
Post #26





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Cytat(idas @ 28.03.2007, 13:27:15 ) *
zaloguje sie inny uzytkownik to on takze dostanie unikalny ID sesji [inny od tego powyzej] i oboje beda mogli przegladac zawartosc strony, tak?
Innymi slowy: wszystko oparte jest o ten identyfikator sesyjny?


Tak, a te zmienne sesyjne są przechowywane na serwerze w jakimś tam katalogu ( np. tmp/ ) i usuwane co jakiś czas ( żywotność sesji podana jest w php.ini ). Ale nic nie stoi na przeszkodzie abyś sobie sam napisał obsługę sesji i np. trzymaj zmienne sesyjne w bazie danych.

PHP.PL :: Session Handler

Pozdrawiam.


--------------------
Go to the top of the page
+Quote Post
idas
post 29.03.2007, 15:13:19
Post #27





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 23.03.2007

Ostrzeżenie: (0%)
-----


Dzieki, poczytam winksmiley.jpg

A mam jeszcze jedno pytanie:
czy jest sens przesylac w adresie URL np. identyfikator sesji, czy moze wystarczy w samym kodzie strony pobierac zmienna sesyjna?

Pytam, bo na wielu stronach zauwazylem, ze w URL jest wyswietlany ID sesji...
Go to the top of the page
+Quote Post
strife
post 29.03.2007, 16:18:40
Post #28





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Cytat(idas @ 29.03.2007, 16:13:19 ) *
Dzieki, poczytam winksmiley.jpg

A mam jeszcze jedno pytanie:
czy jest sens przesylac w adresie URL np. identyfikator sesji, czy moze wystarczy w samym kodzie strony pobierac zmienna sesyjna?

Pytam, bo na wielu stronach zauwazylem, ze w URL jest wyswietlany ID sesji...


To zależy od ustawień użytkownika. Zauważ, że gdy wyłączysz ciasteczka to na tym forum będziesz miał identyfikator sesji przesyłany przez URL. Pytasz czy jest sens, zapewne jakiś jest, ale mało kto wyłącza ciasteczka ( patrz ranking.pl ).


--------------------
Go to the top of the page
+Quote Post
idas
post 29.03.2007, 22:33:48
Post #29





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 23.03.2007

Ostrzeżenie: (0%)
-----


Dzieki winksmiley.jpg

Ja zrobilem u siebie logowanie tak:
jesli uzytkownik podal login, ktory znajduje sie zapisany w bazie danych, oraz haslo pasujace do loginu [takze zapisane w bazie danych], to tworze zmienna $_SESSION[ok]=$login; , gdzie $login to nazwa uzytkownika.
Nastepnie na kazdej stronie mam linijke session_start(); i sprawdzam if($_SESSION[ok]). Jesli warunek zwraca true to wyswietlam zabezpieczona tresc strony, w przeciwnym wypadku wyswietlam "jawna" czesc strony. Czy takie zabezpieczenie jest wystarczajace, czy moze jest do bani? winksmiley.jpg
Go to the top of the page
+Quote Post
super_e107
post 31.12.2007, 14:48:00
Post #30





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 22.12.2006

Ostrzeżenie: (0%)
-----


Sorki że odkopuje, ale nie ma sensu pisać nowego tematu bo dostałbym link do tego, czy ktoś może podać wszystkie pliki jak mają wyglądać i rejestracja łącze z plikiem *sql ?
Go to the top of the page
+Quote Post
Dex19
post 26.01.2011, 18:13:05
Post #31





Grupa: Zarejestrowani
Postów: 5
Pomógł: 1
Dołączył: 26.01.2011

Ostrzeżenie: (0%)
-----


Witam,
tym razem ja odkopię winksmiley.jpg Jestem (php przedszkolakiem) w trakcie pisania systemu logowania www(php)->mysql. Podpieram się gotowcem http://phpsense.com/php/php-login-script.html.

Zastanawia mnie jedna sprawa.
1) logowanie (u mnie) odbywa się na zasadzie sprawdzenia czy w tabeli 'uzytkownicy' danej bazy jest użytkownik wraz z hasłem podanym na stronie logowania
2) sprawdzenie to odbywa się dzięki połączeniu z bazą przy pomocy loginu i hasła wpisanego w "includowanym" ../../incledes/configu.php
3) po poprawnej weryfikacji z punktu 1 przypisujemy zmienne sesyjne itd

Pytania do powyższego:
1) Czy to oznacza, że mimo iż przypiszemy login (podany w formularzu logowania i znaleziony w tabeli użytkowników) to i tak fizycznie działamy na koncie o którym mowa w pkt. 2?
(ja tak właśnie to rozumiem)
2) Jeśli tak to czy takie rozwiązanie jest bezpieczne? - chodzi mi tu konkretnie o kwestię tego, że wszyscy tak naprawdę działają na jednym koncie fizycznie utworzonym na serwerze mysql, a ich "konta" z tabeli użytkownicy danej bazy są fikcyjnymi z punktu widzenia tegoż serwera.
3) Jeśli tak (pyt nr1) to czy tak to powinno profesjonalnie wyglądać i taka jest praktyka (jeden user + role dla kont tabeli uzytkownicy) czy też każdy użytkownik powinien mieć swoje faktyczne konto na serwerze mysql i poprzez jakiś panel administracyjny powinno się nadawać mu prawa do poszczególnych baz/tabel/kolumn itd.

Proszę mnie poprawić jeśli się myle, ale w/g mnie to chyba lepsze rozwiązanie z jednym użytkownikiem. Sam generuję mu bardzo mocne hasło, nadaję najpotrzebniejsze prawa i nie martwię się tym, że jakiś user z trochę wyższymi uprawnieniami ustawił sobie hasło 'mama' do konta które jest fizycznie utworzonym na serwerze.
Chyba, że moje założenie o niedostępności includowanego pliku jest błędne winksmiley.jpg


pozdrawiam i dziękuję za odpowiedź
Dex19

Na pytanie 1 już chyba już sobie sam odpowiedziałem winksmiley.jpg questionmark.gif?

łącząc się z bazą za pomocą
Kod
(mysql_connect($serwer, $login, $haslo) and mysql_select_db($baza));

wtedy przy użyciu zmiennych sesyjnych i mogę działać na loginie i haśle podanym przez usera winksmiley.jpg

pozostając w temacie bezpieczeństwa - które z poniższych rozwiązań jest właściwe? (o ile wogóle któreś jest winksmiley.jpg )

Opcja pierwsza:
1) aplikacja przewiduje 3 role
2) tworzę 3 userów, którym grantem nadaję w bazie prawa do odpowiedniech operacji na poszczegolnych tabelach/kolumnach itd
3) przy logowaniu do systemu sprawdzam role usera i do bazy już loguję go przy użyciu wcześniej utworzonego w pkt 2 konta-roli

Opcja druga:
1) Każdy user ma fizycznie utworzone konto na serwerze MySql
2) W tabeli uzytkownicy (bazy roboczej, nie serwera) przypisane są role i po stronie kodu, warunkami stworzony system dostępu na podstawie ról

Opcja trzecia:
1) Jedno konto za pomoca którego cały czas łączę się z bazą
2) W tabeli uzytkownicy (bazy roboczej, nie serwera) przypisane są role i po stronie kodu, warunkami stworzony system dostępu na podstawie ról

pozdrawiam

Go to the top of the page
+Quote Post
Noidea
post 26.01.2011, 18:25:26
Post #32





Grupa: Zarejestrowani
Postów: 226
Pomógł: 61
Dołączył: 20.08.2010

Ostrzeżenie: (0%)
-----


Na większości (jak nie wszystkich) hostingach współdzielonych nie możesz tworzyć nowych użytkowników w MySQL, więc stosuje się opcję 3. Potem strona się rozrasta, przechodzi na VPS albo dedyk, ale założenia zostają po staremu.

Opcja druga byłaby pewnie strasznie upierdliwa w zarządzaniu.

Opcja trzecia pierwsza jest ok jeśli masz możliwość jej zastosowania. Utworzenie osobnego użytkownika MySQL dla administratorów strony, osobnego dla operacji na newralgicznych danych (login, hasło, email, itp.) i osobnego dla całej reszty zapytań spowoduje, że nawet jeśli ktoś znajdzie lukę w twoim kodzie "wyświetlania 5 najnowszych komentarzy z bazy", to i tak do niczego ciekawego się nie dokopie.


EDIT
@Dex19 Tak, chodziło mi o opcję pierwszą. Jakoś tak wyszło, że opisuję te opcje od tyłu i się zamotałem.

Ten post edytował Noidea 27.01.2011, 01:20:34


--------------------
Go to the top of the page
+Quote Post
Dex19
post 26.01.2011, 19:10:52
Post #33





Grupa: Zarejestrowani
Postów: 5
Pomógł: 1
Dołączył: 26.01.2011

Ostrzeżenie: (0%)
-----


bardzo dziękuję za odpowiedź

Cytat
Opcja trzecia jest ok jeśli masz możliwość jej zastosowania. Utworzenie osobnego użytkownika MySQL dla administratorów strony, osobnego dla operacji na newralgicznych danych (login, hasło, email, itp.) i osobnego dla całej..


zakładam że chodziło tu o opcję pierwsza smile.gif ?
Go to the top of the page
+Quote Post
shaolin33
post 19.03.2013, 09:44:46
Post #34





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 5.10.2012

Ostrzeżenie: (10%)
X----


Cytat(robos85 @ 20.03.2007, 22:30:44 ) *
ok działa oto moje pliki:
logowanie.html pomijam,

sprawdz.php
  1. <?php
  2.  
  3. define('login', 'robert');
  4. define('haslo', '123456');
  5.  
  6.  
  7. // powyzej badz ponizej przed tym kodem moze byc umieszczony formularz ;)
  8. // najpierw sprawdzamy, czy wysyłane zmienne w formularzu nie są puste.
  9. if ( ! empty( $_POST['login'] ) && ! empty( $_POST['password'] ) )
  10. {
  11. // jezeli nie dokonujemy sprawdzenia poprawnosci loginu i hasla
  12. if ( $_POST['login'] == login && $_POST['password'] == haslo )
  13. {
  14. // tworzymy zmienna sesyjna
  15. $_SESSION['zalogowany'] = '1';
  16. //session_register('zalogowany');
  17. print("Zalogowany");
  18. print("<a href="plik.php">Klik</a>");
  19. }
  20. else
  21. {
  22. echo 'Podales zly login badz haslo!';
  23. }
  24. }
  25. else
  26. {
  27. echo 'Wprowadz dane do formularza :)';
  28. }
  29.  
  30.  
  31. ?>


plik.php
  1. <?php
  2. //session_register('zalogowany');
  3. if ( isset( $_SESSION['zalogowany'] ) )
  4. {
  5.  
  6. echo 'Wiadomosc dla zalogowanego uzytkownika';
  7. print("<a href="wyloguj.php">Klik</a>");
  8. }
  9.  
  10. else
  11. {
  12. echo 'zaloguj się';
  13. }
  14. ?>


wyloguj.php
  1. <?php
  2.  
  3. print("wylogowano");
  4.  
  5. ?>


tylko teraz moje pytanie brzmi: jak przerobić plik sprawdz.php aby po udanym zalogowaniu przeiosło mnie do pliku index.html questionmark.gif wiem że trzeba dodać header(...) ale w którym miejscu ?



witaj,

podeslesz poprawiony kod sprawdz.php questionmark.gifquestionmark.gif
Go to the top of the page
+Quote Post

2 Stron V  < 1 2
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 05:46