Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]zapamietaj mnie
neo1986kk
post
Post #1





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


Witam chciałbym na swojej stronce zrobić właśnie taką opcje.

I tu mam kilka pytań:

1. Jak to zrobić? Czy tutaj już w grę wchodzą ciasteczka (jeszcze nigdy ich nie używałem)
2. Czy to jest bezpieczne?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
pedro84
post
Post #2





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


1. Ciasteczko
2. Raczej tak.
Go to the top of the page
+Quote Post
thek
post
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




To tak zwana "długa sesja", która zamiast trwać do momentu opuszczenia strony jest zapamiętywana na określony czas.
A co do bezpieczeństwa, to pamiętaj o jednej podstawowej rzeczy: "Wszystko, co nie zmienia sie przez długi czas jest łatwiejsze do odnalezienia lub daje większą szansę na przechwycenie tego". Łopatologicznie ujmując. Jeśli masz stałą sesję przez długi czas, to istnieje większa szansa na to, że ktoś się do niej dobierze i podszyje pod Ciebie. Istnieje regeneracja sesji jako pewne remedium na ten problem. tutaj zapoznaj się z tematem sesji i ataków choćby typu session hijacking czy session fixating, bo to z nimi będziesz musiał w takiej sytuacji stanąć oko w oko.
Go to the top of the page
+Quote Post
neo1986kk
post
Post #4





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


Trochę nie rozumiem tego artykułu, że sesje można przekazywać w url albo w ciasteczku. No ale ja mam do logowania użyte sesje i przecież nigdzie ich nie przekazuję tylko sprawdzam czy sesja istnieje.

Chociaż pewnie się mylę. Ale session_start() to myślalem ze on sprawdza czy jest taka sesja. Chociaz w sumie powinna być ona gdzieś zapisana:/ nie wiem
jeśli ktoś może mi to wytłumaczyć to będę wdzięczny.
Go to the top of the page
+Quote Post
wookieb
post
Post #5





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




To może poznaj teorię działania sesji co? Bo póki co narazie nie mamy o czym rozmawiać.
Go to the top of the page
+Quote Post
marcio
post
Post #6





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

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


Sesje na srv wspoldzielonych sa zapisywane w tymaczasowym katalogu /tmp/ na dedykach/vps miejsce ich zapisywania mozesz zmienic.

Jak chcesz zrobic opcje zapamietaj mnie to kodus haslo w ciasteczku jakis szyfrem ktory mozna tez rozkodowac wtedy obronisz sie przed script kiddie, lecz ktos bardziej spostrzegawczy zobaczy ze bedzie to base64/rot13 lub inne znane szyfry.
Go to the top of the page
+Quote Post
neo1986kk
post
Post #7





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


Może inaczej. Wiem co to są sesje i po co są. Mam wykupiony serwer hostingowy i proste logowanie.
  1. if(isset($_POST['login']) && isset($_POST['password']))
  2. {
  3. // jeżeli użytkownik właśnie podjął próbę zalogowania
  4. $iduzytkownika = $_POST['login'];
  5. $haslo = $_POST['password'];
  6.  
  7.  
  8. $bd_lacz = new mysqli('host, 'nazwa', 'haslo', 'baza');
  9.  
  10. if (mysqli_connect_errno()) {
  11. echo 'Połączenie z bazą danych nie powiodło się: '.mysqli_connect_error();
  12. exit();
  13. }
  14.  
  15. $zapytanie = 'select * from logowanie '
  16. ."where login='$iduzytkownika' "
  17. ." and haslo='$haslo' ";
  18.  
  19. $wynik = $bd_lacz->query($zapytanie);
  20. if($wynik->num_rows > 0)
  21. {
  22. // jeżeli dane są w bazie zarejestrowanie identyfikatora użytkownika
  23. $_SESSION['prawid_uzyt'] = $iduzytkownika;
  24. }
  25. $bd_lacz->close();
  26. }


później na każdej stronie mam na górze session_start() i if jeśli jest sesja to kod dla zalogowanych else dla niezalogowanych i to wszystko.

Dlatego teraz mam pytanie po przeczytaniu artykułu, co to znaczy ze sesje sa przekazywane url, bo nie moge tego zrozumieć.

Czy ja to powinienem jakoś zabezpieczyć?

Na swoim serwerze nia mam folderu /tmp.
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No to nadal nie wiesz o czym mówimy. IDENTYFIKATOR SESJI jest przekazywany.
Najprostszym sposobem stworzenia opcji zapamietania jest ustawienie baaardzo długiego czasu życia ciasteczka wlasnie z Identyfikatorem sesji.
Go to the top of the page
+Quote Post
neo1986kk
post
Post #9





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


wiem o czym mowimy bo sam ten temat założyłem.

Ale poprostu przy okazji czytania artykułu o sesjach doszedłem do wniosku ze moge mieć źle zabezpieczony skrypt.

Rozumiem ze musze zrobić długie sesje żeby mieć opcje zapamiętaj mnie i to jest jasne już dla mnie. Ale teraz juz nie chce zakladać osobnego tematu tylko tu chce uzyskać pomoc na temat mojego zabezpieczenia.

Pokazałem swój skrypt i powiedzialem ze mam to na hostingu, (nazwa.pl) w oczekiwaniu, że ktoś mi odpowie czy to jest dobrze zabezpieczone czy nie.

W jaki sposób przekazuje sesję?

Poprostu nie rozumiem tego.

A co do dlugości sesji to teraz muszę do tego swojego kodu dodać żeby on zapisywał się w ciasteczku? Sesja znika odrazu po opuszczeniu przeglądarki.

Ten post edytował neo1986kk 19.05.2010, 13:50:04
Go to the top of the page
+Quote Post
marcio
post
Post #10





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

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


Nie wiem jak sprawdzasz czy user jest zalogowany, ale wydaje mi sie ze robisz cos takiego:
  1. if(isset($_SESSION['prawid_uzyt'])) {
  2.  
  3. //tresc dla zalogowanych
  4.  
  5. }
  6.  
  7. else {
  8.  
  9. //tresc dla nie zalogowanych
  10.  
  11. }

Jesli robisz tak wydaje mi sie ze jesli ja sie zaloguje na moje konto bede znal twoje id/login i zmienie zawartosc sesji ti zaloguje mnie na twoje konto.

Poniewaz nie masz zadnego hash'u ani nic co by ci blokowalo taka operacje.
Go to the top of the page
+Quote Post
thek
post
Post #11





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




A więc zobacz na kolorowanie. Wcięło Ci przy połączeniu ' przy zmiennej hosta to raz. Dwa, że kompletnie nie zadbałeś o filtrowanie zmiennej. Jeśli mechanizm filtracji dla mysqli nie przewiduje w metodzie query filtrowania (a tak jest z tego co kojarzę) to masz niemal gratisowy atak typu SQL Injection na własne życzenie. Poczytaj tutejsze tematy na forum o tym. jest nawet jeden przyklejony.

Co do długości sesji to popatrz choćby na http://www.php.net/manual/en/function.sess...okie-params.php a to Ci nieco powinno żarówkę zaświecić (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
neo1986kk
post
Post #12





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


marcio a umiesz to sprawdzić?

thek ale ja sprawdzałem sqlinjection i chyba nazwa.pl sama to zabezbiecza. Ale jeśli możesz to sprawdzić jakoś to podam Ci stronke.
Go to the top of the page
+Quote Post
thek
post
Post #13





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Znając życie jest włączone magic quotes. Przeniesiesz serwis gdzie tego nie będzie i Ci się kod sypnie. Pisz od razu poprawnie i nie licz na dyrektywę, która od wersji 5.3 jest przestarzała a w 6.0 albo wyłączona albo usunięta całkowicie (nie pamiętam teraz które z dwojga).
Go to the top of the page
+Quote Post
neo1986kk
post
Post #14





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


ok dziękuje za radę.

Myślę że tu akurat chodzi Ci o addslasches. To jeszcze jakoś zrobie. Najgorzej będzie mi z tymi sesjami pewnie, ale moze jakoś dam radę.
Go to the top of the page
+Quote Post
thek
post
Post #15





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Nie funkcję, a dyrektywę (IMG:style_emoticons/default/smile.gif) Magic_quotes w działaniu przypomina addslashes. Coś jak ta funkcja działająca automatycznie dla każdej tablicy i zmiennej w skrypcie. Nie zawsze jest to działanie pożądane i przez to potrafi napsuć krwi. To programista powinien decydować co kiedy użyć, nie interpreter języka odgórnie. Poczytaj nieco o magic_quotes a być może przyznasz mi rację.
Go to the top of the page
+Quote Post

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: 22.08.2025 - 15:24