Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Php MySQL / Bezpieczny ale i prosty system logowania, Moze jak nikt mi za bardzo nie pomogł w ostatnim moim temacie moze...
Torriel
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 29.01.2007
Skąd: Zduńska Wola

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


Moze jak nikt mi za bardzo nie pomogł w ostatnim moim temacie moze... teraz poradzicie chociarz jak zrobić najbanalniejszy system logowanie lecz by byl w miare bezpieczny tzn jak sie wyloguje i klikne pare razy wstecz to wracam znow do panelu kiedy belem zalogowany chodzi mi zeby taka sytuacja nie mogla zaistniec na zadnej przegladarce... (Problem z wstecz poruszylem juz wczesniej lecz jedna osoba odpisala i nie za bardzo mi to pomoglo...) Poradzcie... prosze...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dem
post
Post #2





Grupa: Zarejestrowani
Postów: 96
Pomógł: 7
Dołączył: 24.01.2006
Skąd: lublin/wawa

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


logowanie na sesjach w kilku krokach bez opisu dzialan na mysql czy co tam uzywasz:

1 logujesz sie -> jest ok:
- nadajesz np.
  1. <?php
  2. $_SESSION['auth']['in'] = TRUE;
  3. ?>

2. na kazdej stronie ktora ma byc chroniona sesja sprawdzasz sobie wartość
  1. <?php
  2. if ( $_SESSION['auth']['in'] != TRUE ) {
  3. /*przekierowanie do formularza*/
  4. } 
  5. else {
  6. /* kod chroniony przez sesje */
  7. }
  8. ?>

3. wylogowanie np:
  1. <?php
  2. if ($_GET['id'] == 'wyloguj') {
  3. /*przekierowanie do formularza*/
  4. }
  5. ?>

i przekierowujesz do formularza

przydatnym jest zeby zrobic zabezpieczenie przed bezczynnoscia usera, bo sesja wygasnie tylko wtedy gdy sie wylogujesz... czyli podczas pierwszego zalogowania nadajesz np.
  1. <?php
  2. $_SESSION['auth']['time'] = time();
  3. ?>

a wracajac do pkt. 2 robisz wtedy np:
  1. <?php
  2. $SesTime = 3*60; /* 3 minuty */
  3.  if ( $_SESSION['auth']['in'] != TRUE ) {
  4. /*przekierowanie do formularza*/
  5. }
  6. else /* jest zalogowany caly czas wiec trzeba sprawdzic kiedy ostatnio byl zalogowany*/ {
  7. if ($_SESSION['auth']['time'] + $SesTime < time() ) {
  8. /*przekierowanie do formularza*/
  9. }
  10. else {
  11. $_SESSION['auth']['time'] = time(); /* przedluzenie zycia sesji*/
  12. /* tutaj juz głowna cześć kodu ktory chroniony jest haslem */
  13. }
  14.  
  15. }
  16. ?>

jesli cie nie interesuje powiadomienia usera dlaczego zostal wylogowany i nie ma wiecej dostepu do danych chronionych haslem to polacz all w calosc:
  1. <?php
  2. $SesTime = 3*60; /* 3 minuty */
  3. if ( ($_SESSION['auth']['in'] != TRUE) || ($_SESSION['auth']['time'] + $SesTime < time()) || ($_GET['id'] == 'wyloguj') ) {
  4.  /*przekierowanie do formularza*/
  5. }
  6. else { 
  7. $_SESSION['auth']['time'] = time(); /* przedluzenie zycia sesji*/
  8. /* tutaj juz głowna cześć kodu ktory chroniony jest haslem */
  9.  }
  10. ?>


pisane z palca wiec pewnie zawiera literowki, jakies braki etc..zwlaszcza ze jest 2 w nocy :S

to nie jest idealna metoda, ale jak dla mnie skuteczna :E ktos to moze skrytykowac ale masz okrojony schemat dzialania sesji by dem :S

edit: nie zapomnij ze kada strona chroniona sesja musi miec na poczatku
  1. <?php
  2. ?>


pozdrawiam i mam nadzieje ze wg. mojego aktualnego toku myslenia i analizowania (padam na nos) dobrze zrozumialem o co pytales odnosnie sesji... mam nadzieje ze pomoglem chociaz w jednej malej rzeczy (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

edit2:
cos przegladalem twoje posty i z tego co zrozumialem gosciu po kliknieciu wstecz nie moze byc zalogowany... no to masz :S

Ten post edytował dem 7.11.2007, 02:18:23
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 18:10