2012-08-09 2 views
1

쿠키가 저장되지 않은 봇에서 액세스 할 수있는 PHP가 있습니다. _POST 변수에서 세션 ID를 복원 할 수 있습니다. 세션 ID에서 세션을 다시 시작한 후에 쿠키를 사용할 수 없기 때문에 $ _SESSION은이 경우 세션 변수에 액세스 할 수 없습니다.PHP : 재개 된 세션에서 세션 변수 가져 오기

정확히 말하면 세션은 사용자에 의해 시작됩니다. 이 PHP 페이지는 사용자의 세션 ID가 매개 변수로 전달 된 봇의 POST 요청을 하나만 받게됩니다. 이 세션을 "다시 시작"하고 사용자 세션에 저장된 내용을 확인해야합니다.

봇은 보낸 모든 정보를 삭제합니다.

세션 변수를 검색하는 다른 방법이 있습니까?

+0

봇이 쿠키를 저장할 수없는 이유가 있습니까? 거의 모든 스크립팅 언어가 쿠키를 처리 할 수 ​​있어야합니다. –

+0

@GordonBailey이 방법으로 설계되었습니다. 나는 봇을 바꿀 수 없다. – aaronqli

+0

세션 데이터는 기본적으로 서버의 디스크에 저장되며 ID는 쿠키로 전송됩니다. session_id ($ _ POST [ 'my_sess_id'])를 호출 한 다음 session_start()를 호출 할 수 있습니까? 그게 작동해야합니다 ... – webjprgm

답변

2

예, 방법이 있습니다. session.use_trans_sid ("1"로 설정) INI 설정을 사용하면 출력 된 모든 URL에 세션 ID가 포함 된 쿼리 문자열이 추가되어 쿠키가 필요하지 않습니다.

+0

작동하지 않는 것 같습니다. 정확하게 말하면 세션은 사용자에 의해 시작됩니다. 이 PHP 페이지는 사용자의 세션 ID가 매개 변수로 전달 된 봇의 POST 요청을 하나만 받게됩니다. 이 세션을 "다시 시작"하고 사용자 세션에 저장된 내용을 확인해야합니다. – aaronqli

+0

그리고 "bot"은 전송 된 모든 정보를 무시할 가능성이 큽니다. – aaronqli

+0

그 경우 ...'session_id ($ _ POST [ 'botsession']); ' – Lusitanian

0

많은 사람들이 session_id (...)를 사용하도록 제안했습니다. 이는 내 설정에서 어떤 이유로 작동하지 않습니다. 대신 내 해결책은 세션 파일을 읽고 session_decode (...)를 사용하여 $ _SESSION 변수를 채운 다음 $ _SESSION을 통해 변수에 액세스하는 것입니다.