2013-10-29 3 views
3

지불 시스템 때문에 유효한 PCI (HTTPS)를 갖기 위해 제 3 자 웹 사이트에있는 일종의 릴레이 시스템을 사용해야합니다.CodeIgniter 세션 ID가 변경 중이며 작동하지 않습니다.

현재 우리는 너무 많은 시간을 사용하는 이상한 버그에 직면하고 있습니다.

우리는 4 단계로 등록했습니다.

  1. 모든 데이터를 입력하십시오.
  2. 추가 이미지
  3. 지불

이것은 우리가 어떻게입니다 : 1 단계에서 우리는 세션 $this->session->set_userdata("campaigncreation", $out); 에 모든 포스트 데이터를 저장 그리고 네 $ 밖으로는 모든 데이터가 포함되어 있습니다.

단계에서 우리는 쉽게 campaigncreation을위한 세션 데이터를 인쇄 할 수 있습니다. <?print_r($this->session->userdata)?>

다른 웹 사이트로 이동해야하기 때문에 세션에 제 3 자 웹 사이트를 유지하기 위해 session_id를 추가합니다. 우리가 URL에 SESSION_ID (<?=$this->session->userdata("session_id")?>)를 가지고시피 https://relay.ditonlinebetalingssystem.dk/relay/v2/relay.cgi/http://xxxx.dk/something/controller/a1264526031adb9c71ae433eef44bfa0

, 우리의 컨트롤러 우리는이 같은 컨트롤러에서 그와 함께 세션 ID를 대체 :

우리의 URL이 같은입니다

$의 phpsess는 "a1264526031adb9c71ae433eef44bfa0"

if (!empty($phpsess)){ 
      $this->session->set_userdata("session_id",$phpsess); 
} 

우리는 지금 우리가 제대로 SESSION_ID 얻을 사용자 데이터를 인쇄하지만 일부 1 단계에서 우리와 함께 데이터를하지 않는 경우 어떻게. 무엇을해야합니까?

난 단지 얻을

Array 
(
[session_id] => a1264526031adb9c71ae433eef44bfa0 
[ip_address] => 87.54.46.121 
[user_agent] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36 
[last_activity] => 1383052142 
[user_data] => 
[advertiser_id] => 1 
[advertiser_name] => xxxx 

)

하지만 그건 완전히 이상한 그래서 어떤 방법으로 여전히, 광고주 ID 및 ADVERTISER_NAME에 대한 정확한 데이터를

.

무엇을할까요?

코드 서명자가 각 페이지로드시 session_id를 새로 고치는 것과 비슷하므로 문제가있을 수 있습니다.

도메인 쿠키 설정 때문일까요? 나도 몰라. 우리를 도와 줘.

+0

하는 경우 여기서 뭘하는지 이해했는데 세션과 관련된 보안 설정이 그 사이트 간 데이터 전송. 이를 위해 일부 웹 서비스를 사용해야합니다. 평안한. –

답변

0

세션 회전이라고하며 CodeIgniter의 보안 기능입니다. 참조를 위해 테이블을 만들고 각 요청마다 단일 사용 권한 토큰을 다른 도메인에 첨부하는 것을 권장하지 않습니다.

그런 다음 두 번째 도메인에서 토큰 서버 측을 상호 참조하십시오.
IonAuth - seems to be randomly logging me out

0

저도 같은 문제가 발생했다 (새로 고침 세션 ID를 변경 :

당신이있어 동일한 주제에 대한 내 대답 중 하나를 볼 수 있습니다] = 당신이 세부 사항을 더 필요로하는 경우 알려줘) 테스트 플랫폼/장치에서 정확한 날짜 시간을 설정하지 않았다는 사실이 밝혀졌습니다.

0

사이트의 coorect URL을 입력 해보십시오.

$config['base_url'] = 'http://www.yoursite.com'; 
0

내가 다른 사람을 픽업하려고하는 이상한 경우. 내 dev 배포 테스트는 ajax 호출에서 세션이 다르기 때문에 실패합니다.

로컬 VM의 IP가이 CodeIgniter 프로젝트의 컨볼 루션을 맞추기에 충분하지 않은 것으로 보입니다.

한 번만 적절한 도메인 이름으로 로컬 DNS 서버를 설정하면 logged_in이 $ username/$ identity 세션을 인식 할 수있었습니다.

VM에서 제공되는 IP로 로컬 사이트를보고있는 동안 아약스가 외부에서 도메인을 호출하는 것 같습니다.

0

CI의 Session.php에 따르면 ID는 매번 업데이트 할 때마다 변경되지만 오른쪽 ID 행을 업데이트 할 수 있도록 이전 ID에 대한 참조를 유지합니다.

또한, 문서에 따르면 : "SESSION_ID"5 분마다 (기본적으로) 재생되는 세션 ID는 "나는 다른 고유의 변수를 설정하도록 건의 할 것"

를 사용하는 특별한 이유가 없다면. " 유저 데이터와 "세션 ID"로 사용합니다.

$uniqueId = uniqid(time()+$unique_user_variable, TRUE); 
$this->session->set_userdata("my_session_id", md5($uniqueId)); 

을 "고유 한 사용자 변수"로 특정 경우에 따라 사용자의 IP, 사용자 이름, 사용자 ID 등 다를 수 있습니다.

관련 문제