Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 25 Dołączył: 28.09.2008 Skąd: Lublin Ostrzeżenie: (0%)
|
Witam
jak w temacie sam nie wiem jak do końca to rozwiązać więc czekam na za i przeciw. Pozdrawiam |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%)
|
Tak czytam i aż mnie dziw bierze jak bardzo ludzie nie rozumieją o co chodzi w sesjach. Sesje to nasz pośrednik pomiędzy klientem i serwerem w bezstanowym protokole HTTP. Aby móc powiązać te dane potrzebujemy:
- utworzyć identyfikator sesji (SID czy jakkolwiek go sobie nazwiemy) - gromadzić dane sesji Sesje implementujemy po stronie klienta za pomocą: - doklejania parametru sesji (SID) do adresu (jeżeli nie ma obsługi np cookies) - za pomocą cookies - można się ewentualnie pokusić o local storage (choć nie wiem czy ktoś tak aktualnie robi, są rozwiązania w JS wykorzystujące różne handlery w zależności od technologii którą klient wspiera) tyle że też nowoczesne przeglądarki ze wsparciem ogółu technologii zwanych HTML5 otwierają ogromne pole do popisu dla włamów Po stronie klienta możemy trzymać albo sam SID, albo jakieś dodatkowe, tymczasowe dane ale nic ważnego (ciastko można skasować, można je zmienić, wirus może próbować je odczytać albo zmienić). Oraz po stronie klienta za pomocą dowolnego mechanizmu przechowywania. Może to być: - relacyjna baza danych - nierelacyjna baza danych - pliki tekstowe przy czym rozwiązania te są zupełnie niezależne od naszej implementacji sesji a zależą od dostępności technologii i wymagań projektu. Jak ktoś wcześniej zauważył można nawet podmontować obszar pamięci jako katalog i obsługa operacji na danych jest zrzucona na system operacyjny (kernel, który we wszystkich rozwiązaniach i tak pośredniczy, to tak off-topicowo). Tutaj, z racji tego że klient dostępu do tych danych nie ma, przechowujemy dane ważne. Tyle że rozwiązania te muszą być zabezpieczone przed typowymi próbami nieupoważnionego dostępu jak choćby SQL Injection czy inne wymienione w wątku. W obu przypadkach od nas zależy co przechowujemy w tych implementacjach ponieważ każde z nich ma jakieś ograniczenia. Cookie do 4kB, relacyjne bazy danych mogą być wolne (ale nie przesadzajmy, przy ilości zapytań potrzebnych do obsługi całego sklepu to pryszcz dla silnika), trzymanie w pamięci może sprawić że dane stracimy. Sam mechanizm sesji to całkowicie nasza inicjatywa bo akurat w tym przypadku można skorzystać z gotowych, dostępnych w PHP metod ale też napisać klasę która nic z SessionHandler czy interface nie implementuje. Chodzi tylko o to żeby powiązać SID klienta z SID serwera. Co więcej, można nawet napisać taki mechanizm, który dla danych mniej istotnych tworzy namespace pracujący w backendzie na noSQL a dla danych istotnych dla baz relacyjnych. |
|
|
|
usb2.0 Koszyk w sesji czy w bazie? 5.05.2012, 19:17:43
patrysiek2 Według mnie lepiej w sesji. 5.05.2012, 19:32:44
marcio Cytat(patrysiek2 @ 5.05.2012, 20:32:4... 5.05.2012, 20:01:54
greycoffey To jest dana, które pasuje TYLKO do sesji - a czy ... 5.05.2012, 20:23:28 
r4xz Cytat(greycoffey @ 5.05.2012, 21:23:2... 5.05.2012, 21:17:54
Niktoś Ja zrobiłem koszyk oparty o nierelacyjną bazę dany... 5.05.2012, 21:25:55
Fifi209 Jak najbardziej coś w stylu pomysłu Niktosia. Dlac... 5.05.2012, 22:57:08
usb2.0 nie wiem czy się zbijasz @up czy mówisz poważnie a... 5.05.2012, 23:03:59 
Fifi209 Cytat(usb2.0 @ 6.05.2012, 00:03:59 ) ... 5.05.2012, 23:06:14
bastard13 Zależy, czy po wyłączeniu przeglądarki i uruchomie... 5.05.2012, 23:12:18
usb2.0 no brzmi całkiem sensownie sory ze zwiątpiłem
no p... 5.05.2012, 23:13:05
Niktoś Może generalizuje ,ale:
sesja= session hijacking,... 6.05.2012, 00:06:38
Fifi209 Cytat(usb2.0 @ 6.05.2012, 00:13:05 ) ... 6.05.2012, 04:56:15
spokoloko123 Bardzo wygodnie wszystko jest rozwiązane na helion... 6.05.2012, 05:44:26
Niktoś Dane koszyka to raczej dane temporalne-użytkownik ... 6.05.2012, 09:16:17
usb2.0 skorzystałem z rady @Fifi209 i oparłem to na seria... 6.05.2012, 09:29:10
Niktoś Nom w darmowym ,czy nawet płatnym hostingu tego ni... 6.05.2012, 09:31:44
greycoffey Cytat(Niktoś @ 6.05.2012, 01:06:38 ) ... 6.05.2012, 10:02:11
usb2.0 brzmi sensownie 6.05.2012, 10:05:10
greycoffey Btw. PHP oferuje nawet podstawowe API do tworzenia... 6.05.2012, 10:13:42
Niktoś CytatNiktosiu, w takim razie w jaki sposób impleme... 6.05.2012, 10:19:19 
greycoffey Cytat(Niktoś @ 6.05.2012, 11:19:19 ) ... 6.05.2012, 10:37:13
Niktoś CytatPrawde mówiąc: gówno wiesz na temat tych atak... 6.05.2012, 11:46:49 
greycoffey Cytat(Niktoś @ 6.05.2012, 12:46:49 ) ... 6.05.2012, 12:09:56
tehaha Cytatnierelacyjne bazy danych w cache komputera do... 6.05.2012, 12:17:54
wNogachSpisz Pytanie dobre, ale obawiam się że autor w zależnoś... 6.05.2012, 12:41:01
greycoffey Generalnie najlepiej zaimplementować to w PHP 5.4 ... 6.05.2012, 12:45:03
Niktoś CytatW jakim cache komputera? Mógłbyś to rozwinąć?... 6.05.2012, 15:29:44
tehaha CytatTak,relacyjne(MySql, MSSQL ,inne) jak i nie r... 6.05.2012, 16:47:56
Niktoś CytatNie to nie są sesje, sesja to mechanizm pozwa... 6.05.2012, 17:45:41 
r4xz Cytat(Niktoś @ 6.05.2012, 18:45:41 ) ... 6.05.2012, 18:33:52
tehaha CytatRównie dobrze mógłbym w MSSQL ,czy w MYSQL ut... 6.05.2012, 18:38:07
greycoffey Cytat(r4xz @ 6.05.2012, 19:33:52 ) w ... 6.05.2012, 18:42:50
Niktoś CytatNo właśnie nie mógłbyś byś. Bo jak wtedy zide... 6.05.2012, 20:14:41 
greycoffey Cytat(Niktoś @ 6.05.2012, 21:14:41 ) ... 6.05.2012, 21:12:06
tehaha CytatMógłbym dla każdego użytkownika utworzyć unik... 6.05.2012, 20:44:08
aachi Przepraszam, że się wtrącam w waszą dyskusję, ale ... 6.05.2012, 21:24:41
Niktoś A niech to odpalę troszeczkę kodu ,mam nadzieję ,ż... 6.05.2012, 22:00:34
Fifi209 Niktoś robisz straszny burdel w kodzie. Czemu dane... 6.05.2012, 22:31:19
tehaha To co pokazałeś to jest sesja oparta o bazę.
Cytat... 6.05.2012, 22:33:45
mortus @Niktoś: SQLSpaces nie jest nierelacyjną bazą dany... 6.05.2012, 23:29:20
Niktoś CytatSidejacking is still a problem for many sites... 6.05.2012, 23:46:02 
mortus Cytat(Niktoś @ 7.05.2012, 00:46:02 ) ... 7.05.2012, 08:14:19
tehaha CytatAle żeś mi armatę wystawił, chyba najgorszy a... 7.05.2012, 01:26:17
spokoloko123 Zrobienie tego w sesji jest po prostu głupie. Nikt... 7.05.2012, 06:01:31
m44 spokoloko123 w jaki sposób chcesz to zrobić, jeśli... 7.05.2012, 08:07:18 
spokoloko123 Cytat(m44 @ 7.05.2012, 09:07:18 ) spo... 7.05.2012, 08:21:23 
mortus Cytat(spokoloko123 @ 7.05.2012, 09:21... 7.05.2012, 08:53:19
Niktoś Cytat- zapisanie zawartości koszyka w bazie danych... 7.05.2012, 09:28:52 
mortus Cytat(Niktoś @ 7.05.2012, 10:28:52 ) ... 7.05.2012, 09:36:09
spokoloko123 @mortus
Nie rozumiesz zasad e-commerce. Nie będę t... 7.05.2012, 18:57:43 
mortus Cytat(spokoloko123 @ 7.05.2012, 19:57... 7.05.2012, 19:17:18
tehaha @spokoloko123 pomysł bardzo fajny, ale i tak ten k... 7.05.2012, 19:29:33
Niktoś Taka analiza ma tylko i wyłącznie sens w przypadku... 7.05.2012, 19:34:58 
mortus Cytat(Niktoś @ 7.05.2012, 20:34:58 ) ... 7.05.2012, 19:43:39
Niktoś No ale jeśli użytkownik nie będzie zarejestrowany,... 7.05.2012, 19:57:06 
mortus Cytat(Niktoś @ 7.05.2012, 20:57:06 ) ... 7.05.2012, 20:05:15 
uupah5 Cytat(Niktoś)No ale jeśli użytkownik nie będzie za... 8.05.2012, 07:43:47
tehaha @Niktoś identyfikacji użytkownika pomiędzy żądania... 7.05.2012, 20:07:16 ![]() ![]() |
|
Aktualny czas: 17.02.2026 - 00:30 |