2011-09-19 6 views
0

저는 현재 전자 상거래 사이트 용 장바구니를 구축 중이며 결제 과정에서 세션의 사용자 데이터를 유지하는 가장 좋은 방법에 대해 궁금합니다. > 로그인/등록 - -> 선택 배달 주소를 -> 확인 -> 지불 내 문제가 한 번 사용자가 로그인입니다전자 상거래 세션 데이터 지속성

, 내가 원하는

쇼핑 카트 다음과 같이 사용자의 흐름이 작동

입니다 하나를 선택할 수 있도록 배달 주소 목록을 표시합니다. 가장 쉬운 방법은 사용자의 ID로 모델을 쿼리하는 것이지만 걱정은 보안을위한 것입니다. 먼저 세션에 사용자 ID를 저장 한 다음이를 사용하여 주소를 검색하십시오. 그러나 다른 사용자가 잠재적으로이 ID를 납치하는 것을 막을 수는 없습니다 (임의의 숫자를 추측하여). 그리고 다른 사용자의 주소를 공개합니다. 아마도 이메일 주소를 사용할 수 있지만이 역시 잠재적으로 추측 할 수 있습니다. 두 가지 조합을 사용하는 것이 최선의 방법입니까, 아니면 더 좋은 방법이 있습니까?

+0

경우, 상점은 처음부터 존재하지 않아야합니다. PHP의 기본 세션 ID는 임의의 32 자의 영숫자 문자열이며 쉽게 추측 할 수 없습니다. –

답변

0

PHP에는 세션 기능이 내장되어 있습니다. 브라우저에 고유 한 쿠키를로드하고 $_SESSION 배열을 통해 서버 측의 모든 세션 데이터를 유지할 수 있습니다. 쿠키 ID는 사용자가 아닌 세션에 고유하므로 사용자가 로그인 할 때마다 변경됩니다 (쿠키가 만료 된 경우). https로 세션을 진행하면 매우 안전합니다. https가 없으면 으로 쿠키 데이터를 가로 채기위한 (특별한) 지식과 성향을 가진 사람에게 취약합니다. 그런 차단은 쉽지 않습니다. 에 따라 보안 상태를 유지하려면 https없이 실행하는 것이 좋을 수도 있고 그렇지 않을 수도 있습니다.

현재 PHP 세션 기능에 대한 자세한 내용을보실 수 있습니다 : 세션 ID가 쉽게 추측 할 수있을 정도로 약한

http://php.net/manual/en/features.sessions.php

+0

감사합니다. $ _SESSION 쿠키가 어떻게 작동하는지 오해했습니다. 세션 ID뿐만 아니라 쿠키에 데이터가 저장되었다는 인상을 받았습니다. 내 컴퓨터를 검색 할 때 세션 데이터를 찾아 내 자신을 혼란스럽게 만들었지 만 이제는 내 xampp 로컬 호스트에 저장된 해당 서버 측 데이터라는 것을 알았습니다! – baseten

+0

쿠키를 만들면 쿠키에 세션 데이터 *를 저장할 수 있습니다. 하지만 PHP 세션이 그렇게하는 것은 아닙니다. 그들은 서버 측의 모든 것을 저장하고 쿠키에 유일한 ID를 넣습니다. 클라이언트는 요청에서 쿠키 데이터 (세션 ID)를 제공하고 서버는'$ _SESSION' 배열의 올바른 세션 데이터에 액세스 할 수 있습니다. –