Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Koszyk w sesji czy w bazie?
usb2.0
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
greycoffey
post
Post #2





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

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


Cytat(Niktoś @ 6.05.2012, 01:06:38 ) *
Może generalizuje ,ale:
sesja= session hijacking, session fixation, session Poisoning-dużo możliwości manualowania danymi.To samo tyczy się coockies ,a może są jeszcze bardziej niebezpieczne.

Załóżmy klient kupuje artykułów na 20tys, głupio by było jakby tobie zamówienie wysłał na 2zł bo dobry hacker z niego i podmienił tobie dane sesji.Nie mówię już o wykradaniu adresów i e-maili.Chyba,że w sesji będziesz przechowywał klucze główne(id) do poszczególnych kolumn i wiązał je z bazą danych, wtedy to będzie w miarę bezpieczne.

Może to paranoja, ale dużo się naczytałem, że kluczowych danych w sesji czy cookie nie przechowuje się.

Niktosiu, w takim razie w jaki sposób implementujesz autoryzację? Czy wy nie rozumiecie, że sesje mogą być różnie zaimplementowane?
Session hijacking - obrona przed CSRF - tokeny oraz ciasteczko z SID httpOnly, w przypadku ataku man-in-the-middle pomoże wam tylko SSL, w innym wypadku ktoś i tak może się podszyć pod daną osobę, nei tylko przez ciastko z SID, ale także podsłuchując dane logowania, adresy etc.
Session fixation - wybacz, ale to zagrożenia związanee nie z samymi sesjami, potrzebna jest tu inna luka, przeważnie XSS.
Session poisoning - jak kotś ustawia dane sesyjne, na podstawie klucz generowanego przez podaną przez użytkownika daną, to jest głupi i zamiast programowaniem, powinien się zająć czymś innym.
Hahaha, w takim razie jak powiążesz kluczowe dane z niezalogowanym użytkownikiem, jak nie losowym kluczem przechowywanym w $_COOKIE?

Cytat(Fifi209 @ 6.05.2012, 05:56:15 ) *
@Niktoś
Kto normalny przechowuje np. ceny czy wartość zamówienia w sesji/cookies?

True^^.

Cytat(Niktoś @ 6.05.2012, 10:16:17 ) *
Dane koszyka to raczej dane temporalne-użytkownik może zamówić, ale nie musi zrealizować zamówienia. Dlatego ta część aplikacji może stanowić problem. Używając bazy danych, w pewnym momencie może okazać się ,że jest to niewydajne.Są wszakże tabele temporalne(do czasu trwania sesji lub aplikacji) ,ale to także generuje masę zapytań do bazy danych ,a przy złożeniu zamówienia przez użytkownika trzeba by było zrobić zrzut zamówionych towarów z tabeli temporalnej do tabeli właściwej,aby zachować te dane.

Używanie samych sesji czy cookies do tego typu rzeczy do najbezpieczniejszych sposobów nie należy.

Ja użyłem nierelacyjną bazę danych -gdzie tak jak w cookies czy w sesji jest expiration time(można ustawić czas życia koszyka, co dla danych tymczasowych jest idealnym rozwiązaniem. Same dane zapisują się w pamięci-więc dostęp do nich jest znacznie szybszy.Cookies i Sesje identyfikują użytkownika po (SID) i po nich następuję pobranie odpowiednich danych z nierelacyjnej bazy danych.W sesji czy cookies nie ma żadnych dodatkowych danych tylko SID.Nawet jak ktoś mi zmanipuluje tymi danymi to co najwyżej dostanie inny koszyk, lecz nie zmanipuluje danymi w nich.

Ta twoja nierelacyjna baza danych to właśnie WŁASNA IMPLEMENTACJA SESJI, dlatego twoja implemntacja, tak samo jak podstawowa i wszystkie inne, może być podatna na wyżej wymienione przez ciebie ataki.
Mechanizm jest taki sam. Identyfikacja użytkownika po losowym kluczu, tylko zamiast z pliku korzystasz z bazy danych.
Twoja nierelacyjna baza danych to SESJA, przed którą tak bardzo przestrzegasz.

Cytat(Niktoś @ 6.05.2012, 10:31:44 ) *
Nom w darmowym ,czy nawet płatnym hostingu tego nie zrobisz, musiałbyś co najmniej dedyka sobie sprawić.

Wystarczy VPS.

Śmieszy mnie niektórych niechęć wobec sesji, a zwłaszcza kiedy mówicie, że są złe, a sami używacie ich alternatywnej wersji "bazy danych". Wasz mechanizm różni się tylko tym, że dane są przechowywane w innym miejscu. A jakie tutaj zagrożenia? I do twojej bazy danych, i do tamtego pliku również można się w jakiś sposób dostać, czy bezpieczeństwo jest większe?
Go to the top of the page
+Quote Post

Posty w temacie
- 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
- - viking   Tak czytam i aż mnie dziw bierze jak bardzo ludzie...   8.05.2012, 06:16:33


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: 18.10.2025 - 11:35